From e1c0a972e16edf18a2dd16e6fbab5b1cdf11e1ff Mon Sep 17 00:00:00 2001 From: hansen <dominik_hansen@web.de> Date: Fri, 10 Mar 2017 16:18:28 +0100 Subject: [PATCH] support performance optimisations --- .../resources/org/sablecc/sablecc/parser.txt | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/src/main/resources/org/sablecc/sablecc/parser.txt b/src/main/resources/org/sablecc/sablecc/parser.txt index b3099ed..7c9c931 100644 --- a/src/main/resources/org/sablecc/sablecc/parser.txt +++ b/src/main/resources/org/sablecc/sablecc/parser.txt @@ -184,6 +184,10 @@ public class Parser implements IParser + token.getText().length()); } + protected boolean addElementsFromListToNewList(String productionRuleAsString) { + return true; + } + $ Macro:ParserInliningPushHeader @@ -399,13 +403,14 @@ Macro:ParserNewHeader { this.firstPopped = null; this.lastPopped = null; - ArrayList nodeList = new ArrayList(); + final boolean addElementsToNewList = addElementsFromListToNewList("$1$"); + ArrayList nodeList = new ArrayList(); $ Macro:ParserNewBodyDecl - ArrayList nodeArrayList$0$ = pop(); + ArrayList nodeArrayList$0$ = pop(); $ @@ -464,32 +469,35 @@ Macro:ParserNewBodyNewTail $ Macro:ParserTypedLinkedListAdd - if($2$Node$3$ != null) - { - $0$Node$1$.add($2$Node$3$); - } + if($2$Node$3$ != null) + { + $0$Node$1$.add($2$Node$3$); + } $ Macro:ParserTypedLinkedListAddAll if($2$Node$3$ != null) //Macro:ParserTypedLinkedListAddAll { - $0$Node$1$.addAll($2$Node$3$); - //$0$Node$1$ = $2$Node$3$; + if(addElementsToNewList){ + $0$Node$1$.addAll($2$Node$3$); + }else{ + $0$Node$1$ = $2$Node$3$; + } } $ Macro:ParserTypedLinkedListAddAll2 - if($2$ != null) //Macro:ParserTypedLinkedListAddAll2 - { - $0$Node$1$.addAll($2$); - } + if($2$ != null) //Macro:ParserTypedLinkedListAddAll2 + { + $0$Node$1$.addAll($2$); + } $ Macro:ParserNewBodyListAdd - nodeList.add($0$Node$1$); + nodeList.add($0$Node$1$); $ -- GitLab