Hello, I'm having trouble figuring out how to express my grammar and was hoping someone could help. I've tried rewriting various ways and looking for some options that might change behavior, but I haven't been able to figure it out.
I have a language with variable assignment and simple commands and doesn't care about whitespace. So, PAx=42 # variable assignment to "PAx" PAx # PA command with argument x I have a grammar, but it insists on spaces after command names. I've tried hiding assignment behind a prioritized rule and tried setting the command lexeme priority, but I always get parse errors when parsing "PAx". I have a simplified grammer which exhibits the issue, #!/usr/bin/perl use warnings; use strict; use 5.028; use Marpa::R2 8.000000; use Data::Dumper; my $grammar = 'Marpa::R2::Scanless::G'->new({ source => \(<<'RULES') }); :default ::= action => [name,values] lexeme default = latm => 1 :start ::= Program Program ::= Statement+ Statement ::= Command terminator || Assign terminator Command ::= command arg Assign ::= variable equal value # Doesn't help: :lexeme ~ command priority => 2 command ~ 'PA' | 'PR' arg ~ [\w]+ equal ~ '=' value ~ [0-9]+ variable ~ [\w]+ terminator ~ [;\n] :discard ~ whitespace whitespace ~ [ \t]+ RULES # This parses correctly, line 2 is a command, line 3 is assignment. my $ok = <<TEXT; x=23 PA x PAx=42 TEXT say Dumper($grammar->parse(\$ok)); # I want to generate same tree as above, # but my grammar wants line 2 to be an assignment. my $bad = <<TEXT; x=23 PAx PAx=42 TEXT # Error in SLIF parse: No lexeme found at line 2, column 4 say Dumper($grammar->parse(\$bad)); Is there some trick to this? Did I miss someting in the documentation? Any suggestions? Thanks! - Dean -- You received this message because you are subscribed to the Google Groups "marpa parser" group. To unsubscribe from this group and stop receiving emails from it, send an email to marpa-parser+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/marpa-parser/32966712-7756-4590-8b13-c9b2decbc3e4n%40googlegroups.com.