.net - Simple FormatString language using Irony -



.net - Simple FormatString language using Irony -

i'm trying define simplistic language using irony. language usecases are

dear {name},

it free text therein references fields enclosed in curly braces. double curly brace escapes field declaration. came next spec:

var ortext = new freetextliteral("text", freetextoptions.alloweof | freetextoptions.allowempty); var orfieldname = new freetextliteral("fieldname"); //nonterminals var orfield = new nonterminal("field"); var orvalue = new nonterminal("value"); //rules orfield.rule = "{" + orfieldname + "}"; orvalue.rule = ortext | orfield; root = orvalue;

however, irony grammarexplorer parses value has text element. field not recognized. missing here?

i don't know much irony, think need create next changes:

set terminator freetextliteral. otherwise, parser won't know when end parsing text or field name. set root non-terminal lets write sequence of values, not single one. get rid of allowempty. after create alter #2, mean irony think input total of empty texts.

with these changes, grammar looks this:

var ortext = new freetextliteral("text", freetextoptions.alloweof, "{"); var orfieldname = new freetextliteral("fieldname", "}"); //nonterminals var orfield = new nonterminal("field"); var orvalue = new nonterminal("value"); var orfile = new nonterminal("file"); //rules orfield.rule = "{" + orfieldname + "}"; orvalue.rule = ortext | orfield; orfile.rule = makestarrule(orfile, orvalue); root = orfile;

which parses input like:

file | /-------+-------\ | | | text value text | | | dear fieldname , | name

.net parsing programming-languages irony

Comments

Popular posts from this blog

formatting - SAS SQL Datepart function returning odd values -

c++ - Apple Mach-O Linker Error(Duplicate Symbols For Architecture armv7) -

php - Yii 2: Unable to find a class into the extension 'yii2-admin' -