Parser software.

Moderators: jkien, Xilvo

Reageer
Berichten: 2.589

Parser software.

Omdat ik verschillende grootte tekstbestanden moet omzetten naar andere tekstbestanden, waarvan ik de start en de doel grammatica ken (de opbouw) dacht ik dat het mss interessant is hiervoor een parser te gebruiken waar ik deze twee grammatica’s kan insteken.

Echter ik heb totaal geen ervaring met parser software (actief te gebruiken, passief natuurlijk wel) daarom mijn vraag heeft er iemand een idee met wat te starten?

Groeten.

Gebruikersavatar
Berichten: 17.659

Re: Parser software.

Waar doel je precies op? Dat de layout aangepast moet worden, of dat het echt geconverteerd moet worden (zeg van Word naar LaTeX of OOo)? Is een wereld van verschil met een totaal ander antwoord. ;)

(Waarbij ik niet noodzakelijkerwijs het antwoord heb. ;) )
"Knowledge speaks, but wisdom listens."
- Jimi Hendrix -

Gebruikersavatar
Berichten: 4.810

Re: Parser software.

Er zijn redelijk wat grammatica parsers op de markt, maar zelf in praktijk nog geen enkele gebruikt.

Berichten: 2.589

Re: Parser software.

Probleem is de files komen uit de simulator (als out file van spice) deze waarden wil ik kunnen gebruiken in matlab. Het gaat dus over bestaanden zoal:

Code: Selecteer alles

subckt

 

element	m34

 m33

 m32

 m31

 

model	  nmos

nmos

nmos

nmos

type	   nmos

nmos

nmos

nmos

region	 Linear		  Linear		  Linear		  Linear		  

power	   5.5506e-005	 5.4566e-005	 5.3562e-005	 5.2493e-005

id		  2.7753e-004	 2.7283e-004	 2.6781e-004	 2.6246e-004

ibd		-1.9821e-013	-1.9825e-013	-1.9828e-013	-1.9832e-013

ibs		-1.9443e-015	-1.9113e-015	-1.8762e-015	-1.8387e-015

vgs		 3.3000e+000	 3.2000e+000	 3.1000e+000	 3.0000e+000

vds		 2.0000e-001	 2.0000e-001	 2.0000e-001	 2.0000e-001

vbs		 0.0000e+000	 0.0000e+000	 0.0000e+000	 0.0000e+000

vth		 5.5482e-001	 5.5481e-001	 5.5480e-001	 5.5479e-001

vdsat	   1.4624e+000	 1.4136e+000	 1.3650e+000	 1.3166e+000

beta		7.2623e-004	 7.3973e-004	 7.5336e-004	 7.6712e-004

gamma	   4.3980e-001	 4.3980e-001	 4.3980e-001	 4.3980e-001

gm		  4.6353e-005	 4.9463e-005	 5.2731e-005	 5.6164e-005

gds		 1.3078e-003	 1.2815e-003	 1.2536e-003	 1.2240e-003

gmbs		2.3683e-005	 2.4258e-005	 2.4851e-005	 2.5465e-005

cdtot	   6.2289e-015	 6.2222e-015	 6.2150e-015	 6.2070e-015

cgtot	   4.3059e-015	 4.3057e-015	 4.3055e-015	 4.3053e-015

cstot	   6.3145e-015	 6.3125e-015	 6.3103e-015	 6.3080e-015

cbtot	   5.9599e-015	 5.9601e-015	 5.9603e-015	 5.9605e-015

cgs		 2.2022e-015	 2.2051e-015	 2.2082e-015	 2.2116e-015

cgd		 2.0598e-015	 2.0567e-015	 2.0533e-015	 2.0496e-015

cb		 -2.0016e-013	-2.0016e-013	-2.0016e-013	-2.0016e-013

cgb		 4.3873e-017	 4.3960e-017	 4.4056e-017	 4.4165e-017

capbd	   2.4938e-015	 2.4938e-015	 2.4938e-015	 2.4937e-015

capbs	   2.6729e-015	 2.6729e-015	 2.6730e-015	 2.6730e-015

weff		2.3438e-006	 2.3438e-006	 2.3438e-006	 2.3438e-006

leff		4.5010e-007	 4.5010e-007	 4.5010e-007	 4.5010e-007

rdeff	   7.0000e+000	 7.0000e+000	 7.0000e+000	 7.0000e+000

rseff	   7.0000e+000	 7.0000e+000	 7.0000e+000	 7.0000e+000	...
Deze files zijn leesbaar voor de mens maar het is een monique werk om bvb 34X34X20 werkingspunten, Ids en gm go enz ... uit te halen.

Groeten.

Gebruikersavatar
Berichten: 4.810

Re: Parser software.

Dat is een bestand die je ook wel heel makkelijk kan parsen met een reguliere expressie of met een zelf geschreven parser die niet echt zeer ingewikkeld hoeft te zijn. Emacs zou bijvoorbeeld handig kunnen zijn om met reguliere expressies dit bestand om te vormen naar het formaat dat jij zou willen hebben.

Berichten: 2.589

Re: Parser software.

Bedankt voor de tip.

Als ik bovenstaande in matlab in laad dan heb ik het probleem dat hij voor de eerste kolom het minteken niet mee neemt, dit voegt hij samen met de naam er voor.

Ik kan eventueel de eerste kolom met de namen er af doen maar ik heb wel eerst deze kolom een keer nodig. Kan ik eventueel met emac de eerste zoveel tekens verwijderen? van elke lijn?

Groeten.

Gebruikersavatar
Berichten: 4.810

Re: Parser software.

Met een reguliere expressie kan dat uiteraard. Het zou zoiets zijn:

Code: Selecteer alles

^.{11}(.*)$
Je kan dan met de variabele \1 het laatste deel terug laten outputten (exclusief de eerste 11 tekens dus).

Berichten: 2.589

Re: Parser software.

Merci.

Reageer