Lemon parser generator & embedded actions

This is a discussion on Lemon parser generator & embedded actions within the C++ Programming forums, part of the General Programming Boards category; Hi everyone, I'm currently translating a program from yacc to lemon for thread-safety, but I have a single problem with ...

  1. #1
    Making mistakes
    Join Date
    Dec 2008
    Posts
    476

    Lemon parser generator & embedded actions

    Hi everyone,
    I'm currently translating a program from yacc to lemon for thread-safety, but I have a single problem with that. I'm using some more complicated rules where there are actions between the terminals, for example:

    Code:
    rule: token { token_count++; } something { token_count += $3->token_count; } end { $$ = whatever(); }
    It is necessary that the actions are performed in order, that means, that token_count should be increased before reducing something.

    Is there any possibility to use this feature in lemon?
    Last edited by Brafil; 05-16-2010 at 07:45 AM.

  2. #2
    Registered User
    Join Date
    Nov 2010
    Posts
    1
    Lemon can only trigger an action after the whole rule is reduced. So break the yacc rule into several Lemon ones.

    Code:
    rule ::= token_action something_action(A) end_action. { result = whatever(); }
    token_action ::= token. { token_count++; }
    something_action ::= something. { token_count += A->token_count; }
    --artem

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Problem with a file parser.
    By Hulag in forum C++ Programming
    Replies: 7
    Last Post: 03-17-2005, 08:54 AM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21