diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-09-16 18:40:46 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-09-16 18:40:46 +0200 |
commit | ef8e4859e80c58035c3416c1fa8f24fd2d5af21d (patch) | |
tree | 44840f2cf1efeaef70ee8eb8efb2273c0186bda0 /config-model/src/main/javacc | |
parent | a1b54cb119f5c0455e961b3033412f8b82c20a97 (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.jj | 17 |
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() : |