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

Jim Idle jimi at temporal-wave.com
Thu Jul 19 10:51:10 PDT 2012


-Xmx2048m

And use the 64bit JRE. However this is really telling you that your
grammar needs some serious reworking. You could try setting k to the same
value you had in 2.7.x

Jim

> -----Original Message-----
> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
> bounces at antlr.org] On Behalf Of Francis ANDRE
> Sent: Thursday, July 19, 2012 1:43 AM
> To: antlr ANTLR
> Subject: [antlr-interest] ANTLRv2.7.7 versus ANTLRv3.4:
> java.lang.OutOfMemoryError: Java heap
>
> 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
> )
>
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-
> email-address


More information about the antlr-interest mailing list