[antlr-interest] should sempred questions be asked on trailing optional tokens?

Mark Wright markwright at internode.on.net
Tue May 6 08:33:39 PDT 2008


Hello,

ANTLR is really neat how it can handle really difficult languages
which require lots of dis-ambiguating semantic predicates.

I have a little question though.  I have a rule which has some
alternatives and some dis-ambiguating semantic predicates like:

simple_type_specifier
        :   {sa.isUnsignedInt((TokenStream)input)}?
                'unsigned' 'int'?
        |   {sa.isSignedInt((TokenStream)input)}?
                'signed' 'int'?
        |   {sa.isInt((TokenStream)input)}?
                'int'
        ;

This is in a large grammar where these dis-ambiguating semantic
predicates are necessary.  Actually I have tried to write a cut-down
example to reproduce this behaviour, but then of course the issue
does not occur.

I try to compile the following input:

unsigned int x;

I tell antlr isUnsignedInt true at line 1 char position 0, but then ANTLR
asks the question at line 1 char position 9 is it an int, then my
parser gets confused.  This is the log of the calls to the dis-ambiguating
semantic predicates when compiling the above input, where:

1:0 means line number 1 char position 0 which is at the start of the token unsigned
1:9 means line number 1 char position 9 which is at the start of the token int

The true or false after the line number:char position is my answer from
the dis-ambiguating semantic predicate.

goanna% tntdboc -ast -logDSPs t1.cpp
Jan 30, 2008 3:42:48 PM Tntdboc process
INFO: Compiling t1.cpp
Jan 30, 2008 3:42:49 PM SemanticActions isStorageClassSpecifierOptTypeIdInitDeclarator
INFO: 1:0 true 
Jan 30, 2008 3:42:49 PM SemanticActions isTypeSpecifierSeqAbstractDeclarator
INFO: 1:0 false 
Jan 30, 2008 3:42:50 PM SemanticActions isUnsignedLongLongInt
INFO: 1:0 false 
Jan 30, 2008 3:42:50 PM SemanticActions isUnsignedLongInt
INFO: 1:0 false 
Jan 30, 2008 3:42:50 PM SemanticActions isStorageClassSpecifierOptTypeIdNoInitDeclarator
INFO: 1:0 false 
Jan 30, 2008 3:42:50 PM SemanticActions isUnsignedShortInt
INFO: 1:0 false 
Jan 30, 2008 3:42:50 PM SemanticActions isUnsignedInt
INFO: 1:0 true 
Jan 30, 2008 3:42:50 PM SemanticActions isUnsignedChar
INFO: 1:0 false 
Jan 30, 2008 3:42:50 PM SemanticActions isInt
INFO: 1:9 true 
line 1:9 [translation_unit, declaration_seq, declaration, block_declaration, simple_declaration, decl_defn_declaration, init_declarator_list, init_declarator]  no viable alt; token=[@2,9:11='int',<91>,1:9] (decision=122 state 0) decision=<<1110:1: init_declarator[CommonTree scs, CommonTree ti] : ({...}? function_declarator -> {(scs == null)}? ^( FUNCTION_DECLARATION function_declarator ) -> {(scs != null)}? ^( FUNCTION_DECLARATION function_declarator ) -> | {...}? operator_function_declarator -> {(scs == null)}? ^( OPERATOR_FUNCTION_DECLARATION operator_function_declarator ) -> {(scs != null)}? ^( OPERATOR_FUNCTION_DECLARATION operator_function_declarator ) -> | declarator ( initializer )? -> {(scs == null)}? ^( DD declarator ( initializer )? ) -> {(scs != null)}? ^( DD declarator ( initializer )? ) ->);>>
Exception in thread "main" org.antlr.runtime.tree.RewriteEarlyExitException
        at tntdbo.dboc.TntdboParser.init_declarator_list(TntdboParser.java:14953)
        at tntdbo.dboc.TntdboParser.decl_defn_declaration(TntdboParser.java:9827)
        at tntdbo.dboc.TntdboParser.simple_declaration(TntdboParser.java:9458)
        at tntdbo.dboc.TntdboParser.block_declaration(TntdboParser.java:9276)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9074)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:8950)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:364)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:136)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:66)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:93)
goanna%

OK so I try to code around this by changing my dis-ambiguating semantic
predicate isInt() to scan backwards looking for 'unsigned', and some other
possibilities I thought of, and answer false if they are found.  This gives
the following dis-ambiguating semantic predicate call trace with
antlr-2008-05-05.18 (I get the same behaviour with this issue in every
ANTLR pre-release I have tried):

goanna% tntdboc -ast -logDSPs t1.cpp
7/05/2008 00:29:23 Tntdboc process
INFO: Compiling t1.cpp
7/05/2008 00:29:26 SemanticActions isStorageClassSpecifierOptTypeIdInitDeclarator
INFO: 1:0 true 
7/05/2008 00:29:26 SemanticActions isTypeSpecifierSeqAbstractDeclarator
INFO: 1:0 false 
7/05/2008 00:29:26 SemanticActions isStorageClassSpecifierOptTypeIdNoInitDeclarator
INFO: 1:0 false 
7/05/2008 00:29:26 SemanticActions isUnsignedShortInt
INFO: 1:0 false 
7/05/2008 00:29:26 SemanticActions isUnsignedChar
INFO: 1:0 false 
7/05/2008 00:29:26 SemanticActions isUnsignedLongInt
INFO: 1:0 false 
7/05/2008 00:29:26 SemanticActions isUnsignedLongLongInt
INFO: 1:0 false 
7/05/2008 00:29:26 SemanticActions isUnsignedInt
INFO: 1:0 true 
7/05/2008 00:29:26 SemanticActions isInt
INFO: 1:9 false 
7/05/2008 00:29:26 SemanticActions isStorageClassSpecifierOptTypeIdInitDeclarator
INFO: 1:9 true 
7/05/2008 00:29:26 SemanticActions isTypeSpecifierSeqAbstractDeclarator
INFO: 1:9 false 
7/05/2008 00:29:26 SemanticActions isStorageClassSpecifierOptTypeIdNoInitDeclarator
INFO: 1:9 false 
7/05/2008 00:29:26 SemanticActions isSimpleTypeSpecifierConstructorCast
INFO: 1:9 false 
7/05/2008 00:29:26 SemanticActions isAssignmentOperatorExpression
INFO: 1:9 false 
7/05/2008 00:29:26 SemanticActions isNoCcQualifierName
INFO: 1:13 false 
7/05/2008 00:29:26 SemanticActions isPtrOperatorDeclarator
INFO: 1:13 false 
7/05/2008 00:29:26 SemanticActions isSimpleTemplateId
INFO: 1:13 false 
7/05/2008 00:29:26 SemanticActions isNoCcIdentifier
INFO: 1:13 true 
(DD unsigned int (DIRECT_DECLARATOR (UNQUALIFIED_IDENTIFIER x)))
goanna% 

My question is:

Is it normal after ANTLR has already chosen to take the alternative:

        :   {sa.isUnsignedInt((TokenStream)input)}?
                'unsigned' 'int'?

to then call another dis-ambiguating semantic predicate on
seeing the token 'int' ?

I thought that ANTLR should trust me: since I answered
isUnsignedInt() is true at 1:0 then I sort of thought that
ANTLR should be greedy and:

- consume the 'int' if its there, without asking any
dis-ambiguating semantic predicate questions.

- only after consuming either ''unsigned' or 'unsigned' 'int' should
ANTLR then start asking more dis-ambiguating semantic predicate
questions if necessary.

Thanks, Mark

PS here is a run with antlr-2008-05-05.18:

- the first call to a dis-ambiguating semantic predicate at each line/char position.

- the ANTLR rule invocation stack.

- the stack trace at the call to the dis-ambiguating semantic predicate.

goanna% tntdboc -ast -logDSPs -logDSPRuleInvocationStack -logDSPStackTrace t1.cpp
7/05/2008 01:04:39 Tntdboc process
INFO: Compiling t1.cpp
7/05/2008 01:04:42 SemanticActions isStorageClassSpecifierOptTypeIdInitDeclarator
INFO: 1:0 true [translation_unit, declaration_seq, declaration]
java.lang.Throwable: isStorageClassSpecifierOptTypeIdInitDeclarator
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isStorageClassSpecifierOptTypeIdInitDeclarator(SemanticActions.java:7341)
        at tntdbo.dboc.TntdboParser$DFA76.specialStateTransition(TntdboParser.java:37160)
        at org.antlr.runtime.DFA.predict(DFA.java:53)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9179)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isTypeSpecifierSeqAbstractDeclarator
INFO: 1:0 false [translation_unit, declaration_seq, declaration]
java.lang.Throwable: isTypeSpecifierSeqAbstractDeclarator
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isTypeSpecifierSeqAbstractDeclarator(SemanticActions.java:2448)
        at tntdbo.dboc.TntdboParser$DFA76.specialStateTransition(TntdboParser.java:37160)
        at org.antlr.runtime.DFA.predict(DFA.java:53)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9179)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isStorageClassSpecifierOptTypeIdNoInitDeclarator
INFO: 1:0 false [translation_unit, declaration_seq, declaration]
java.lang.Throwable: isStorageClassSpecifierOptTypeIdNoInitDeclarator
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isStorageClassSpecifierOptTypeIdNoInitDeclarator(SemanticActions.java:7391)
        at tntdbo.dboc.TntdboParser$DFA76.specialStateTransition(TntdboParser.java:37160)
        at org.antlr.runtime.DFA.predict(DFA.java:53)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9179)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isUnsignedShortInt
INFO: 1:0 false [translation_unit, declaration_seq, declaration]
java.lang.Throwable: isUnsignedShortInt
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isUnsignedShortInt(SemanticActions.java:6212)
        at tntdbo.dboc.TntdboParser$DFA76.specialStateTransition(TntdboParser.java:37160)
        at org.antlr.runtime.DFA.predict(DFA.java:53)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9179)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isUnsignedChar
INFO: 1:0 false [translation_unit, declaration_seq, declaration]
java.lang.Throwable: isUnsignedChar
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isUnsignedChar(SemanticActions.java:6108)
        at tntdbo.dboc.TntdboParser$DFA76.specialStateTransition(TntdboParser.java:37160)
        at org.antlr.runtime.DFA.predict(DFA.java:53)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9179)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isUnsignedLongInt
INFO: 1:0 false [translation_unit, declaration_seq, declaration]
java.lang.Throwable: isUnsignedLongInt
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isUnsignedLongInt(SemanticActions.java:6225)
        at tntdbo.dboc.TntdboParser$DFA76.specialStateTransition(TntdboParser.java:37160)
        at org.antlr.runtime.DFA.predict(DFA.java:53)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9179)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isUnsignedLongLongInt
INFO: 1:0 false [translation_unit, declaration_seq, declaration]
java.lang.Throwable: isUnsignedLongLongInt
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isUnsignedLongLongInt(SemanticActions.java:6238)
        at tntdbo.dboc.TntdboParser$DFA76.specialStateTransition(TntdboParser.java:37160)
        at org.antlr.runtime.DFA.predict(DFA.java:53)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9179)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isUnsignedInt
INFO: 1:0 true [translation_unit, declaration_seq, declaration]
java.lang.Throwable: isUnsignedInt
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isUnsignedInt(SemanticActions.java:6134)
        at tntdbo.dboc.TntdboParser$DFA76.specialStateTransition(TntdboParser.java:37160)
        at org.antlr.runtime.DFA.predict(DFA.java:53)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9179)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isInt
INFO: 1:9 false [translation_unit, declaration_seq, declaration, block_declaration, simple_declaration, decl_defn_declaration, type_id, type_specifier_seq, type_specifier, simple_type_specifier]
java.lang.Throwable: isInt
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isInt(SemanticActions.java:6199)
        at tntdbo.dboc.TntdboParser.simple_type_specifier(TntdboParser.java:10938)
        at tntdbo.dboc.TntdboParser.type_specifier(TntdboParser.java:10474)
        at tntdbo.dboc.TntdboParser.type_specifier_seq(TntdboParser.java:16469)
        at tntdbo.dboc.TntdboParser.type_id(TntdboParser.java:16390)
        at tntdbo.dboc.TntdboParser.decl_defn_declaration(TntdboParser.java:9989)
        at tntdbo.dboc.TntdboParser.simple_declaration(TntdboParser.java:9622)
        at tntdbo.dboc.TntdboParser.block_declaration(TntdboParser.java:9436)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9232)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isStorageClassSpecifierOptTypeIdInitDeclarator
INFO: 1:9 true [translation_unit, declaration_seq, declaration, block_declaration, simple_declaration, decl_defn_declaration, type_id, type_specifier_seq, type_specifier, simple_type_specifier]
java.lang.Throwable: isStorageClassSpecifierOptTypeIdInitDeclarator
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isStorageClassSpecifierOptTypeIdInitDeclarator(SemanticActions.java:7341)
        at tntdbo.dboc.TntdboParser.simple_type_specifier(TntdboParser.java:10938)
        at tntdbo.dboc.TntdboParser.type_specifier(TntdboParser.java:10474)
        at tntdbo.dboc.TntdboParser.type_specifier_seq(TntdboParser.java:16469)
        at tntdbo.dboc.TntdboParser.type_id(TntdboParser.java:16390)
        at tntdbo.dboc.TntdboParser.decl_defn_declaration(TntdboParser.java:9989)
        at tntdbo.dboc.TntdboParser.simple_declaration(TntdboParser.java:9622)
        at tntdbo.dboc.TntdboParser.block_declaration(TntdboParser.java:9436)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9232)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isTypeSpecifierSeqAbstractDeclarator
INFO: 1:9 false [translation_unit, declaration_seq, declaration, block_declaration, simple_declaration, decl_defn_declaration, type_id, type_specifier_seq, type_specifier, simple_type_specifier]
java.lang.Throwable: isTypeSpecifierSeqAbstractDeclarator
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isTypeSpecifierSeqAbstractDeclarator(SemanticActions.java:2448)
        at tntdbo.dboc.TntdboParser.simple_type_specifier(TntdboParser.java:10938)
        at tntdbo.dboc.TntdboParser.type_specifier(TntdboParser.java:10474)
        at tntdbo.dboc.TntdboParser.type_specifier_seq(TntdboParser.java:16469)
        at tntdbo.dboc.TntdboParser.type_id(TntdboParser.java:16390)
        at tntdbo.dboc.TntdboParser.decl_defn_declaration(TntdboParser.java:9989)
        at tntdbo.dboc.TntdboParser.simple_declaration(TntdboParser.java:9622)
        at tntdbo.dboc.TntdboParser.block_declaration(TntdboParser.java:9436)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9232)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isStorageClassSpecifierOptTypeIdNoInitDeclarator
INFO: 1:9 false [translation_unit, declaration_seq, declaration, block_declaration, simple_declaration, decl_defn_declaration, type_id, type_specifier_seq, type_specifier, simple_type_specifier]
java.lang.Throwable: isStorageClassSpecifierOptTypeIdNoInitDeclarator
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isStorageClassSpecifierOptTypeIdNoInitDeclarator(SemanticActions.java:7391)
        at tntdbo.dboc.TntdboParser.simple_type_specifier(TntdboParser.java:10938)
        at tntdbo.dboc.TntdboParser.type_specifier(TntdboParser.java:10474)
        at tntdbo.dboc.TntdboParser.type_specifier_seq(TntdboParser.java:16469)
        at tntdbo.dboc.TntdboParser.type_id(TntdboParser.java:16390)
        at tntdbo.dboc.TntdboParser.decl_defn_declaration(TntdboParser.java:9989)
        at tntdbo.dboc.TntdboParser.simple_declaration(TntdboParser.java:9622)
        at tntdbo.dboc.TntdboParser.block_declaration(TntdboParser.java:9436)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9232)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isSimpleTypeSpecifierConstructorCast
INFO: 1:9 false [translation_unit, declaration_seq, declaration, block_declaration, simple_declaration, decl_defn_declaration, type_id, type_specifier_seq, type_specifier, simple_type_specifier]
java.lang.Throwable: isSimpleTypeSpecifierConstructorCast
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isSimpleTypeSpecifierConstructorCast(SemanticActions.java:6302)
        at tntdbo.dboc.TntdboParser.simple_type_specifier(TntdboParser.java:10938)
        at tntdbo.dboc.TntdboParser.type_specifier(TntdboParser.java:10474)
        at tntdbo.dboc.TntdboParser.type_specifier_seq(TntdboParser.java:16469)
        at tntdbo.dboc.TntdboParser.type_id(TntdboParser.java:16390)
        at tntdbo.dboc.TntdboParser.decl_defn_declaration(TntdboParser.java:9989)
        at tntdbo.dboc.TntdboParser.simple_declaration(TntdboParser.java:9622)
        at tntdbo.dboc.TntdboParser.block_declaration(TntdboParser.java:9436)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9232)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isAssignmentOperatorExpression
INFO: 1:9 false [translation_unit, declaration_seq, declaration, block_declaration, simple_declaration, decl_defn_declaration, type_id, type_specifier_seq, type_specifier, simple_type_specifier]
java.lang.Throwable: isAssignmentOperatorExpression
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isAssignmentOperatorExpression(SemanticActions.java:1618)
        at tntdbo.dboc.TntdboParser.simple_type_specifier(TntdboParser.java:10938)
        at tntdbo.dboc.TntdboParser.type_specifier(TntdboParser.java:10474)
        at tntdbo.dboc.TntdboParser.type_specifier_seq(TntdboParser.java:16469)
        at tntdbo.dboc.TntdboParser.type_id(TntdboParser.java:16390)
        at tntdbo.dboc.TntdboParser.decl_defn_declaration(TntdboParser.java:9989)
        at tntdbo.dboc.TntdboParser.simple_declaration(TntdboParser.java:9622)
        at tntdbo.dboc.TntdboParser.block_declaration(TntdboParser.java:9436)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9232)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isNoCcQualifierName
INFO: 1:13 false [translation_unit, declaration_seq, declaration, block_declaration, simple_declaration, decl_defn_declaration, init_declarator_list, init_declarator]
java.lang.Throwable: isNoCcQualifierName
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isNoCcQualifierName(SemanticActions.java:3363)
        at tntdbo.dboc.TntdboParser$DFA122.specialStateTransition(TntdboParser.java:38398)
        at org.antlr.runtime.DFA.predict(DFA.java:53)
        at tntdbo.dboc.TntdboParser.init_declarator(TntdboParser.java:15054)
        at tntdbo.dboc.TntdboParser.init_declarator_list(TntdboParser.java:14939)
        at tntdbo.dboc.TntdboParser.decl_defn_declaration(TntdboParser.java:9995)
        at tntdbo.dboc.TntdboParser.simple_declaration(TntdboParser.java:9622)
        at tntdbo.dboc.TntdboParser.block_declaration(TntdboParser.java:9436)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9232)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isPtrOperatorDeclarator
INFO: 1:13 false [translation_unit, declaration_seq, declaration, block_declaration, simple_declaration, decl_defn_declaration, init_declarator_list, init_declarator]
java.lang.Throwable: isPtrOperatorDeclarator
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isPtrOperatorDeclarator(SemanticActions.java:2189)
        at tntdbo.dboc.TntdboParser$DFA122.specialStateTransition(TntdboParser.java:38398)
        at org.antlr.runtime.DFA.predict(DFA.java:53)
        at tntdbo.dboc.TntdboParser.init_declarator(TntdboParser.java:15054)
        at tntdbo.dboc.TntdboParser.init_declarator_list(TntdboParser.java:14939)
        at tntdbo.dboc.TntdboParser.decl_defn_declaration(TntdboParser.java:9995)
        at tntdbo.dboc.TntdboParser.simple_declaration(TntdboParser.java:9622)
        at tntdbo.dboc.TntdboParser.block_declaration(TntdboParser.java:9436)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9232)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isSimpleTemplateId
INFO: 1:13 false [translation_unit, declaration_seq, declaration, block_declaration, simple_declaration, decl_defn_declaration, init_declarator_list, init_declarator]
java.lang.Throwable: isSimpleTemplateId
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isSimpleTemplateId(SemanticActions.java:1838)
        at tntdbo.dboc.TntdboParser$DFA122.specialStateTransition(TntdboParser.java:38398)
        at org.antlr.runtime.DFA.predict(DFA.java:53)
        at tntdbo.dboc.TntdboParser.init_declarator(TntdboParser.java:15054)
        at tntdbo.dboc.TntdboParser.init_declarator_list(TntdboParser.java:14939)
        at tntdbo.dboc.TntdboParser.decl_defn_declaration(TntdboParser.java:9995)
        at tntdbo.dboc.TntdboParser.simple_declaration(TntdboParser.java:9622)
        at tntdbo.dboc.TntdboParser.block_declaration(TntdboParser.java:9436)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9232)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
7/05/2008 01:04:42 SemanticActions isNoCcIdentifier
INFO: 1:13 true [translation_unit, declaration_seq, declaration, block_declaration, simple_declaration, decl_defn_declaration, init_declarator_list, init_declarator]
java.lang.Throwable: isNoCcIdentifier
        at tntdbo.symbol.SemanticActions.logDSP(SemanticActions.java:567)
        at tntdbo.symbol.SemanticActions.isNoCcIdentifier(SemanticActions.java:4103)
        at tntdbo.dboc.TntdboParser$DFA122.specialStateTransition(TntdboParser.java:38398)
        at org.antlr.runtime.DFA.predict(DFA.java:53)
        at tntdbo.dboc.TntdboParser.init_declarator(TntdboParser.java:15054)
        at tntdbo.dboc.TntdboParser.init_declarator_list(TntdboParser.java:14939)
        at tntdbo.dboc.TntdboParser.decl_defn_declaration(TntdboParser.java:9995)
        at tntdbo.dboc.TntdboParser.simple_declaration(TntdboParser.java:9622)
        at tntdbo.dboc.TntdboParser.block_declaration(TntdboParser.java:9436)
        at tntdbo.dboc.TntdboParser.declaration(TntdboParser.java:9232)
        at tntdbo.dboc.TntdboParser.declaration_seq(TntdboParser.java:9106)
        at tntdbo.dboc.TntdboParser.translation_unit(TntdboParser.java:414)
        at tntdbo.dboc.Tntdboc.process(Tntdboc.java:170)
        at tntdbo.dboc.Tntdboc.<init>(Tntdboc.java:99)
        at tntdbo.dboc.Tntdboc.main(Tntdboc.java:127)
(DD unsigned int (DIRECT_DECLARATOR (UNQUALIFIED_IDENTIFIER x)))
goanna% 

-- 


More information about the antlr-interest mailing list