c# - NoViableAltException in Antlr4.3 grammar -


problem

i started using antlr (4.3 .net) , after debugging quite while, have surrender. noviablealtexception in last 4 lines - have no idea how fix ...

so have hints me?

supposed behavior

the generated parser supposed parse strings hello {user.name}! or hello {{ {user.name("}")} }}! user.name , user.name("}") expected derive expression rule , else plainstring. however, not yet able test ...

grammar

grammar patternstring;  @namespace{patternstringparser.antlrgenerated}  patternstring:            (plainstring | expressionstring)+;  plainstring:              (plainstringliteral | '""' | '{{' | '}}' )+;  expressionstring:        '{' expression* '}';  expression:               balancedstringliteral+                           | '(' expression ')'                           | '[' expression ']'                           | '{' expression '}'                           | '"' string '"'                           | '\'' character '\'';  string:                   (stringliteral | '\\"')+;  character:                (characterliteral | '\'' )+;  plainstringliteral:      ~[\"\{\}];      // <= noviablealtexception balancedstringliteral:   ~[\"\{\(\[\'];  // <= noviablealtexception characterliteral:        ~[\'];          // <= noviablealtexception stringliteral:           ~[\"];          // <= noviablealtexception 

to analyze kind of problem, dump token stream see lexer doing. dump tokens, see answer - in java, c# implementation should quite similar.


Comments

Popular posts from this blog

javascript - Using jquery append to add option values into a select element not working -

Android soft keyboard reverts to default keyboard on orientation change -

Rendering JButton to get the JCheckBox behavior in a JTable by using images does not update my table -