[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kdevelop-devel
Subject:    Re: how to define order in visit_foo for KDevelop-pg
From:       Roberto Raggi <roberto () kdevelop ! org>
Date:       2007-07-22 20:51:41
Message-ID: 6A368D45-7C4B-40D3-AFF2-284E24733A80 () kdevelop ! org
[Download RAW message or body]

Hi,

Il giorno 22/lug/07, alle ore 22:08, Jakob Petsovits ha scritto:
> No, as far as I know this is not possible without having a custom  
> visitor.
>
> You could
> a) subclass the default visitor and fix the order of the calls in the
>    overriding member function, or

correct solution ;-)

> b) add support for that to kdev-pg directly.

wrong solution

>
> I think that's pretty much it.

yup ;-)

Jakob I think it is time to bootstrap kdev-pg, is it OK with you? I  
have attached the initial version of the kdev-pg grammar in kdev-pg.  
Now I'm trying to generate the kdev-pg AST using the new grammar.

ciao robe


["kdev-pg-parser.g" (kdev-pg-parser.g)]

%token ARGUMENT,
       ARROW,
       AT,
       CATCH,
       CODE,
       COLON,
       COMMA,
       CONSTRUCTOR,
       DECLARATION,
       DESTRUCTOR,
       DOT,
       EQ,
       HASH,
       IDENTIFIER,
       LBRACKET,
       LPAREN,
       MEMBER,
       NAMESPACE_DECLARATION,
       NODE,
       NODE_SEQUENCE,
       OR,
       PARSERCLASS_DECLARATION,
       PLUS,
       PRIVATE,
       PROTECTED,
       PUBLIC,
       QUESTION,
       RBRACKET,
       RPAREN,
       RULE_ARGUMENTS,
       SEMICOLON,
       DBL_SEMICOLON,
       STAR,
       STRING,
       TEMPORARY,
       TERMINAL,
       TOKEN,
       TOKEN_DECLARATION,
       TOKEN_STREAM_DECLARATION,
       TRY_RECOVER,
       TRY_ROLLBACK,
       VARIABLE,
       ZERO
;;

   (CODE | 0) declaration+ (item | namespace_declaration)+ (CODE | 0)
-> system ;;


   PARSERCLASS_DECLARATION LPAREN
            ( CONSTRUCTOR            RPAREN CODE
            | DESTRUCTOR             RPAREN CODE
            | PUBLIC     DECLARATION RPAREN CODE
            | PROTECTED  DECLARATION RPAREN CODE
            | PRIVATE    DECLARATION RPAREN CODE )
 | TOKEN_DECLARATION declared_tokens DBL_SEMICOLON
 | TOKEN_STREAM_DECLARATION IDENTIFIER DBL_SEMICOLON
 | namespace_declaration
-> declaration ;;



   (TERMINAL (LPAREN STRING RPAREN | 0)) @ COMMA
-> declared_tokens ;;



   NAMESPACE_DECLARATION IDENTIFIER CODE
-> namespace_declaration ;;



   ZERO
 | LPAREN option_item RPAREN
 | TRY_RECOVER  LPAREN option_item RPAREN
 | TRY_ROLLBACK LPAREN option_item RPAREN CATCH LPAREN option_item RPAREN
 | HASH IDENTIFIER (EQ    (TERMINAL | IDENTIFIER (RULE_ARGUMENTS | 0))
                  | COLON (TERMINAL | IDENTIFIER (RULE_ARGUMENTS | 0)))
 | IDENTIFIER (EQ    (TERMINAL | IDENTIFIER (RULE_ARGUMENTS | 0))
             | COLON (TERMINAL | IDENTIFIER (RULE_ARGUMENTS | 0))
             | RULE_ARGUMENTS
             | 0)
 | TERMINAL
-> primary_item ;;




   primary_item (AT primary_item | CODE | PLUS | STAR)*
-> postfix_item ;;


   (QUESTION CODE | 0) postfix_item+
-> conditional_item ;;


   conditional_item @ OR
-> option_item ;;




   option_item ARROW IDENTIFIER (DBL_SEMICOLON 
                               | CODE DBL_SEMICOLON
                               | LBRACKET variable_declaration+ RBRACKET (CODE | 0) DBL_SEMICOLON)
-> item ;;




   ARGUMENT (MEMBER | TEMPORARY)
 | MEMBER
 | TEMPORARY
-> variable_declaration_header ;;



   variable_declaration_header ( NODE     (HASH IDENTIFIER | IDENTIFIER) COLON IDENTIFIER SEMICOLON
                               | VARIABLE (HASH IDENTIFIER | IDENTIFIER) COLON IDENTIFIER SEMICOLON
                               | TOKEN    (HASH IDENTIFIER | IDENTIFIER)                  SEMICOLON)
-> variable_declaration ;;



_______________________________________________
KDevelop-devel mailing list
KDevelop-devel@kdevelop.org
https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic