summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/javacc
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahoo-inc.com>2017-01-25 11:32:07 +0100
committerGeir Storli <geirst@yahoo-inc.com>2017-01-26 12:44:26 +0100
commit93958006886da9462961e5d1202ff05b9dd4c357 (patch)
tree426acd5c3a6996efb0371e7acb24ba007ff16165 /config-model/src/main/javacc
parentd757ee1af9cf32b991c907ea21aa767118a5ab87 (diff)
Simplify AST classes used for imported fields.
Diffstat (limited to 'config-model/src/main/javacc')
-rw-r--r--config-model/src/main/javacc/SDParser.jj22
1 files changed, 7 insertions, 15 deletions
diff --git a/config-model/src/main/javacc/SDParser.jj b/config-model/src/main/javacc/SDParser.jj
index d8725b81969..cb6ac8c96f3 100644
--- a/config-model/src/main/javacc/SDParser.jj
+++ b/config-model/src/main/javacc/SDParser.jj
@@ -2392,32 +2392,24 @@ TensorType tensorType(String errorMessage) :
void importField(Search search) :
{
- TemporaryFieldReference reference;
- String fieldName;
-}
-{
- <IMPORT> <FIELD> reference = fieldReference() <AS> fieldName = identifier() lbrace()
- <RBRACE>
- {
- search.importedFields().add(new TemporaryImportedField(fieldName, reference));
- }
-}
-
-TemporaryFieldReference fieldReference() :
-{
String fieldRefSpec;
+ String aliasFieldName;
}
{
- fieldRefSpec = identifier()
+ <IMPORT> <FIELD> fieldRefSpec = identifier() <AS> aliasFieldName = identifier() lbrace()
+ <RBRACE>
{
if (StringUtils.countMatches(fieldRefSpec, ".") != 1) {
throw new IllegalArgumentException("Illegal field reference spec '" + fieldRefSpec + "': Does not include a single '.'");
}
int indexOfDot = fieldRefSpec.indexOf('.');
- return new TemporaryFieldReference(fieldRefSpec.substring(0, indexOfDot), fieldRefSpec.substring(indexOfDot + 1));
+ String documentReferenceFieldName = fieldRefSpec.substring(0, indexOfDot);
+ String foreignFieldName = fieldRefSpec.substring(indexOfDot + 1);
+ search.importedFields().add(new TemporaryImportedField(aliasFieldName, documentReferenceFieldName, foreignFieldName));
}
}
+
/**
* This rule consumes an expression token and returns its image.
*