summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2024-03-01 12:17:26 +0000
committerArne Juul <arnej@yahooinc.com>2024-03-01 12:47:20 +0000
commita7ef19bb93d5359ebc7405b1fe59d0599d8d1d32 (patch)
treed61d5b6c46de3ca7825afa7486b1064d810df712 /config-model
parent44b611190794354b22ea1b8e5949570c3608f1ab (diff)
track inputs vs newlines and warn on missing newlines
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/javacc/SchemaParser.jj22
1 files changed, 19 insertions, 3 deletions
diff --git a/config-model/src/main/javacc/SchemaParser.jj b/config-model/src/main/javacc/SchemaParser.jj
index 7d251bd3514..255cc3cde70 100644
--- a/config-model/src/main/javacc/SchemaParser.jj
+++ b/config-model/src/main/javacc/SchemaParser.jj
@@ -2006,14 +2006,27 @@ void inputs(ParsedRankProfile profile) :
{
Reference reference;
TensorType type;
+ List<Reference> seenInputs = new ArrayList<>();
}
{
<INPUTS> <LBRACE> (<NL>)*
- ( input(profile) (<NL>)*) *
+ (
+ reference = input(profile) { seenInputs.add(reference); }
+ (<NL> { seenInputs.add(null); })*
+ )*
<RBRACE>
+ {
+ Reference last = null;
+ for (Reference current : seenInputs) {
+ if (last != null && current != null) {
+ deployLogger.logApplicationPackage(Level.WARNING, "Expected newline between inputs " + last + " and " + current);
+ }
+ last = current;
+ }
+ }
}
-void input(ParsedRankProfile profile) :
+Reference input(ParsedRankProfile profile) :
{
Reference reference;
InputType type = new InputType(TensorType.empty, false);
@@ -2021,7 +2034,10 @@ void input(ParsedRankProfile profile) :
}
{
reference = inputName() ( type = valueType(reference))? ( <COLON> (<NL>)* defaultValue = tensorValue(type.tensorType()) )?
- { profile.addInput(reference, new RankProfile.Input(reference, type, Optional.ofNullable(defaultValue))); }
+ {
+ profile.addInput(reference, new RankProfile.Input(reference, type, Optional.ofNullable(defaultValue)));
+ return reference;
+ }
}
/** Returns the reference "query(name)" for both "query(name)" and "name". */