A complete example which shows my problem.
--- ADL.g ---
grammar ADL; // Rally Application Development Language
constant_definition
: ConstDef
;
ConstDef
: {System.out.println("");} CONST
(
(' '|'\t')* Identifier {System.out.print($Identifier.text + " ");}
(' '|'\t')* EQUAL
(' '|'\t')* CharString {System.out.print($CharString.text + " ");}
(' '|'\t')* SEMICOLON
)+
;
CharString
: '"' (LETTER)+ '"'
;
CONST
: 'CONST' {System.out.print("CONST ");}
;
LETTER
: ('a'..'z'|'A'..'Z')
;
DIGIT
: ('0'..'9')
;
SEMICOLON
: ';' {System.out.println(";");}
;
EQUAL
: '=' {System.out.print("= ");}
;
Identifier
: LETTER (LETTER|'_'|DIGIT)+
;
----
--- ADL.java ---
import java.io.*;
import org.antlr.runtime.*;
import org.antlr.runtime.debug.DebugEventSocketProxy;
public class ADL {
public static void main(String args[]) throws Exception {
ADLLexer lex = new ADLLexer(new
ANTLRFileStream("/home/thierry/antlr/output/tid.txt"));
CommonTokenStream tokens = new CommonTokenStream(lex);
ADLParser g = new ADLParser(tokens);
try {
g.constant_definition();
} catch (RecognitionException e) {
e.printStackTrace();
}
}
}
----
--- tid.txt ---
CONST str1 = "ok" ;
str2="ko";
str3 = "end";
----
$ java ADL
CONST str1 = "ok" ;
= ;
= ;
Only the first values (Identifier, CharString) are printed and not the
following ;-(
I used antlrworks-1.2.3.
Thierry.
List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe:
http://www.antlr.org/mailman/options/antlr-interest/your-email-address
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"il-antlr-interest" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/il-antlr-interest?hl=en
-~----------~----~----~----~------~----~------~--~---