summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/javacc
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-09-16 18:40:46 +0200
committerJon Bratseth <bratseth@oath.com>2018-09-16 18:40:46 +0200
commitef8e4859e80c58035c3416c1fa8f24fd2d5af21d (patch)
tree44840f2cf1efeaef70ee8eb8efb2273c0186bda0 /config-model/src/main/javacc
parenta1b54cb119f5c0455e961b3033412f8b82c20a97 (diff)
Refactor: Initialize all macros state at once
Diffstat (limited to 'config-model/src/main/javacc')
-rw-r--r--config-model/src/main/javacc/SDParser.jj17
1 files changed, 10 insertions, 7 deletions
diff --git a/config-model/src/main/javacc/SDParser.jj b/config-model/src/main/javacc/SDParser.jj
index 63d3926afad..2c60ab3771b 100644
--- a/config-model/src/main/javacc/SDParser.jj
+++ b/config-model/src/main/javacc/SDParser.jj
@@ -58,6 +58,8 @@ import com.yahoo.language.Linguistics;
import com.yahoo.language.simple.SimpleLinguistics;
import com.yahoo.search.query.ranking.Diversity;
import java.util.Map;
+import java.util.List;
+import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.logging.Level;
import org.apache.commons.lang.StringUtils;
@@ -1920,17 +1922,18 @@ void inheritsRankProfile(RankProfile profile) :
*/
void macro(RankProfile profile) :
{
- String macro, param, expr;
+ String name, expression, parameter;
+ List parameters = new ArrayList();
boolean inline = false;
}
{
- ( <MACRO> inline = inline() macro = identifier() [ "$" { macro = macro + token.image; } ]
- "(" { profile.addMacro(macro, inline); }
- [ param = identifier() { profile.getMacros().get(macro).addParam(param); }
- ( <COMMA> param = identifier() { profile.getMacros().get(macro).addParam(param); } )* ]
+ ( <MACRO> inline = inline() name = identifier() [ "$" { name = name + token.image; } ]
+ "("
+ [ parameter = identifier() { parameters.add(parameter); }
+ ( <COMMA> parameter = identifier() { parameters.add(parameter); } )* ]
")"
- lbrace() expr = expression() (<NL>)* <RBRACE> )
- { profile.getMacros().get(macro).setTextualExpression(expr); }
+ lbrace() expression = expression() (<NL>)* <RBRACE> )
+ { profile.addMacro(name, parameters, expression, inline); }
}
boolean inline() :