Revision history for Perl extension Eyapp. 1.179

            %token then = %/(then)\b/
            %token if   = %/(if)(?!\s=)/
            %token ID   = /([a-zA-Z_]\w)/

See grammar t/PLIconflictContextualTokens.eyp

                %token then =  { $self->expects('then') and /\Gthen\b/gc     and return ('then', 'then'); }
                %token if   =  { $self->expects('if')   and /\Gif(?!\s=)/gc and return ('if', 'if'); }
                %token ID  = /([a-zA-Z_]\w)/
        See t/PLIconflictContextualTokens.eyp
              It means: Check for nested parser "decl" if success, reduce by 'ID:DEC', otherwise
              reduce by 'ID:EXP'
          pascalnestedeyapp3_6.eyp:
              %conflict rORe range? ID:RANGE : ID:ENUM
          DebugDynamicResolution4.eyp:
              %conflict LD lastD? D:LAST : shift

              It means: Check for nested parser "lastD" if success, reduce by 'D:LAST', otherwise
              shift

May be the nested parser can be embedded in the same module generated without requiring a second compilation with -S start -P 1.175

1.173

-- Merged PPCR branch with trunk
-- option for main to produce .png version of the AST -- png for .output also: options -w and -W -- improved $t->png to include attribute info -- $t->png: order of the children is respected 1.171

        save the conflict states at compile time
        and send them to the parser,
        then inside YYsetReduce, check that the next state is inside
        the listed conflict states

*YYSymbolStack: there is no need to copy the stack each time. Saving the position is enough

1.169

1.167
Bug solved:
my $ID = qr{...};
token ID = /$ID/
the code for my $ID went after the lexer. That was an error.

        S:
             x  %PREC isInTheMiddle S x  
          |  %name :MIDx 
             x  %PREC isInTheMiddle 
        ;

1.165

1.156

1.154

1.152

1.137
%nocompact
This directive disables the optimization of using the DEFAULT field of the actiontable and keeps the follows. Is in Lalr.pm in sub SetDefaults. 1.136

%namingscheme : defines an automatic naming cheme 1.134 - -b now set the permits. Useful to make a modulino 1.121 - Standalone wasn't working: Parse::Eyapp::Base must be included 1.118 - new with yyprefix

Previous pre-eyapp history