[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