help-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Tutorial or Article


From: Tathams
Subject: Tutorial or Article
Date: Wed, 02 Mar 2016 19:39:43 +0200

Can anyone suggest something for me to read to learn and understand look ahead
and fall back.

I am have trouble writing a partial C pre-processor and wish to create a few
non-terminals to handle the many different #xxxx things that can occur in
header files.

So if I have a non-terminal to handle #if or #ifdef then another to handle
#elif and a final to handle #else like so

/* ISO/IEC 9899:201x (6.10) */
if_group 
 : NUMBER_SIGN KEYWORD_IF constant_expression NEW_LINE group
 | NUMBER_SIGN KEYWORD_IF constant_expression NEW_LINE
 | NUMBER_SIGN KEYWORD_IFDEF IDENTIFIER NEW_LINE group
 | NUMBER_SIGN KEYWORD_IFDEF IDENTIFIER NEW_LINE
 | NUMBER_SIGN KEYWORD_IFNDEF IDENTIFIER NEW_LINE group
 | NUMBER_SIGN KEYWORD_IFNDEF IDENTIFIER NEW_LINE
 ; 

/* ISO/IEC 9899:201x (6.10) */
elif_groups 
 : elif_group
 | elif_groups elif_group
 ;

/* ISO/IEC 9899:201x (6.10) */
elif_group 
 : NUMBER_SIGN KEYWORD_ELIF constant_expression NEW_LINE group
 | NUMBER_SIGN KEYWORD_ELIF constant_expression NEW_LINE
 ;

/* ISO/IEC 9899:201x (6.10) */
else_group 
 : NUMBER_SIGN KEYWORD_ELSE NEW_LINE group
 | NUMBER_SIGN KEYWORD_ELSE NEW_LINE
 ;

How do I not fail when the�NUMBER_SIGN finds an ELSE rather than a IF.

Regards
Stephen



____________________________________________________________
South Africas premier free email service - www.webmail.co.za

reply via email to

[Prev in Thread] Current Thread [Next in Thread]