lunedì 12 agosto 2013

Yacc/Lex Tools v0.2

In un precedete post (Linguaggi e Traduttori con Visual Studio) ho illustrato come aggiungere un parser al proprio progetto C# utilizzando i tools GPPG e GPLEX per compilare i files YACC e LEX per generare rispettivamente il parser ed il relativo scanner.

Nel post precedente veniva illustrato come modificare a mano il file di progetto dopo aver installato il NuGet package YaccLexTools.

Il package "YaccLexTools" è stato aggiornato e dalla versione 0.2 non è più necessario modificare manualmente i tag XML del file di progetto. Con questa nuova versione è possibile gestire il tutto grazie a nuovi Cmd-Let PowerShell azionabili dal "Package Manager Console" di Visual Studio.

Ad esempio, per aggiungere un parser al tuo progetto sarà necessario eseguire il comando:

 PM> Add-Parser MyLanguage 

Con questo comando verrano creati tutti i files ed i settings necessari per la compilazione dei files YACC e LEX.


Se si vuole specificare un namespace personalizzato si potrà eseguire il seguente comando il cui secondo parametro è proprio il namespace:

 PM> Add-Parser MyLanguage Sample.NameSpace 

Per rimuovere i settings di un parser creato nel progetto si potrà utilizzare il seguente comando:

 PM> Remove-Parser MyLanguage 

Con questo comando non verranno rimossi i files, ma solo i settings per il parser specificato. I files dovranno essere rimossi manualmente.

Infine nel package è incluso un esempio funzionante per interpretare delle espressioni di calcolo. Per aggiungere al progetto questo esempio è sufficiente utilizzare il comando

 PM> Add-CalculatorExample 


Conclusioni.
In questo post sono state illustrate le semplificazioni implementate nella nuova versione del NuGet package YaccLexTools per la gestione di parsers all'interno di progetti C#.

Con la speranza che questi aggiornamenti siano utili a chi già usa il package e tutti coloro che lo utilizzeranno,

Ernesto

Nessun commento:

Posta un commento

Etichette

ajax (1) C# (3) C++ (1) click (1) clickout (1) compilatori (2) gplex (2) gppg (2) html (1) i18n (1) internazionalization (1) javascript (2) jquery (1) lex (2) object oriented (1) plugin (1) programmazione (3) software (4) svg (1) VB (1) vector graphics (1) visual studio (2) vrml (1) web (1) Win32 (1) windows 8 (1) WinRT (1) XAML (1) yacc (2) yacclextools (1)