[antlr-interest] ANTLRv2.7.7 versus ANTLRv3.4: java.lang.OutOfMemoryError: Java heap

Francis ANDRE francis.andre.kampbell at orange.fr
Thu Jul 19 01:42:35 PDT 2012


Hi antlr listeners


When migrating from antlrv2.7.7 to antlr v3.4 a quite huge grammar (3500+ lines, 
350 rules), I got an java.lang.OutOfMemoryError: Java heap space while already 
running the jvm with a heap of 512m.

Does somebody faced the same situation?? Is there a solution to avoid reworking 
the grammar??

If possible, I would prefer not to change the grammar -- except the syntactic 
sugar of the migration -- since both execution of the generated parser/lexer for 
antlrv2 and antlrv3 should give the same result.

Thanks for your help

Francis


building lookahead DFA (d=142) for ()+ loopback of 785:4: (v= computeTarget )+
convert DFA state 0 (469 nfa states)
convert DFA state 1 (40 nfa states)
convert DFA state 2 (10011 nfa states)
convert DFA state 3 (10011 nfa states)
convert DFA state 33 (9972 nfa states)
convert DFA state 34 (9972 nfa states)
convert DFA state 39 (9890 nfa states)
convert DFA state 40 (9888 nfa states)
convert DFA state 43 (96 nfa states)
convert DFA state 44 (1296 nfa states)
convert DFA state 147 (621 nfa states)
convert DFA state 153 (1296 nfa states)
convert DFA state 256 (621 nfa states)
convert DFA state 262 (1296 nfa states)
convert DFA state 351 (530 nfa states)
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:612)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:682)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:764)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:764)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:764)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:764)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:682)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:764)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:682)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:682)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:764)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:682)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:764)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:708)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:764)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:764)
     at org.antlr.analysis.NFAToDFAConverter.closure(NFAToDFAConverter.java:764)



More information about the antlr-interest mailing list