summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/javacc/IntermediateParser.jj
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-02-25 11:16:50 +0100
committerGitHub <noreply@github.com>2022-02-25 11:16:50 +0100
commitccaab80aafc8e6b5d1c129d9ee0759285e1b1297 (patch)
treeab41b8073cb397f4206eea57875d4358699cc101 /config-model/src/main/javacc/IntermediateParser.jj
parentfc1fd0e6d2e2f651d680ee148dc0f5a8d1bddd45 (diff)
parent9fa74366994fa991c21db246df97377149fc37b9 (diff)
Merge branch 'master' into bratseth/strict
Diffstat (limited to 'config-model/src/main/javacc/IntermediateParser.jj')
-rw-r--r--config-model/src/main/javacc/IntermediateParser.jj54
1 files changed, 23 insertions, 31 deletions
diff --git a/config-model/src/main/javacc/IntermediateParser.jj b/config-model/src/main/javacc/IntermediateParser.jj
index 6a7627043f9..cc03773f333 100644
--- a/config-model/src/main/javacc/IntermediateParser.jj
+++ b/config-model/src/main/javacc/IntermediateParser.jj
@@ -431,7 +431,14 @@ ParsedSchema rootDocument() :
}
{
( (rootDocumentItem(schema) (<NL>)*)*<EOF> )
- { return schema; }
+ {
+ if (schema.hasDocument()) {
+ ParsedDocument doc = schema.getDocument();
+ schema = new ParsedSchema(doc.name());
+ schema.addDocument(doc);
+ }
+ return schema;
+ }
}
/**
@@ -968,13 +975,10 @@ void summaryTo(ParsedField field) :
{
<SUMMARYTO> [name = identifier()] <COLON> destination = identifier()
{
- psf = new ParsedSummaryField(name);
+ psf = field.summaryFieldFor(name);
psf.addDestination(destination);
}
( <COMMA> destination = identifier() { psf.addDestination(destination); } )*
- {
- field.addSummaryField(psf);
- }
}
/**
@@ -1056,7 +1060,7 @@ void fieldSorting(ParsedField field) :
ParsedSorting sortInfo;
}
{
- sortInfo = sorting() { field.setSorting(sortInfo); }
+ sortInfo = sorting(field.name(), "field") { field.setSorting(sortInfo); }
}
/* pick up sorting in field block */
@@ -1065,12 +1069,12 @@ void attributeSorting(ParsedAttribute attribute) :
ParsedSorting sortInfo;
}
{
- sortInfo = sorting() { attribute.setSorting(sortInfo); }
+ sortInfo = sorting(attribute.name(), "attribute") { attribute.setSorting(sortInfo); }
}
-ParsedSorting sorting() :
+ParsedSorting sorting(String blockName, String blockType) :
{
- ParsedSorting sort = new ParsedSorting();
+ ParsedSorting sort = new ParsedSorting(blockName, blockType);
}
{
<SORTING>
@@ -1176,59 +1180,47 @@ void summaryInDocument(ParsedDocumentSummary docsum) :
*
* @param field The field to modify.
*/
-void summaryInField(ParsedField field) :
+void summaryInField(ParsedField field) : { }
{
- ParsedSummaryField psf;
-}
-{
- ( <SUMMARY> ( LOOKAHEAD(2) psf = summaryInFieldShort(field.name())
- | psf = summaryInFieldLong(field.name())) )
- {
- field.addSummaryField(psf);
- }
+ <SUMMARY> ( LOOKAHEAD(2) summaryInFieldShort(field)
+ | summaryInFieldLong(field) )
}
/**
* This rule consumes a single-line summary field.
- *
- * @return The consumed summary field.
*/
-ParsedSummaryField summaryInFieldShort(String fieldName) :
+void summaryInFieldShort(ParsedField field) :
{
- String name = fieldName;
+ String name = field.name();
ParsedSummaryField psf;
}
{
[ name = identifier() ]
{
- psf = new ParsedSummaryField(name);
+ psf = field.summaryFieldFor(name);
}
<COLON> ( <DYNAMIC> { psf.setDynamic(); }
| <MATCHEDELEMENTSONLY> { psf.setMatchedElementsOnly(); }
| (<FULL> | <STATIC>) { psf.setFull(); }
)
- { return psf; }
}
/**
* This rule consumes a multi-line summary field.
- *
- * @return The consumed summary field.
*/
-ParsedSummaryField summaryInFieldLong(String fieldName) :
+void summaryInFieldLong(ParsedField field) :
{
- String name = fieldName;
- ParsedType type = null;
+ String name = field.name();
+ ParsedType type = field.getType();
ParsedSummaryField psf;
}
{
( [ name = identifier() [ <TYPE> type = dataType() ] ]
lbrace()
{
- psf = new ParsedSummaryField(name, type);
+ psf = field.summaryFieldFor(name, type);
}
(summaryItem(psf) (<NL>)*)* <RBRACE> )
- { return psf; }
}
/**