diff options
author | Arne Juul <arnej@yahooinc.com> | 2024-03-01 12:17:26 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahooinc.com> | 2024-03-01 12:47:20 +0000 |
commit | a7ef19bb93d5359ebc7405b1fe59d0599d8d1d32 (patch) | |
tree | d61d5b6c46de3ca7825afa7486b1064d810df712 | |
parent | 44b611190794354b22ea1b8e5949570c3608f1ab (diff) |
track inputs vs newlines and warn on missing newlines
-rw-r--r-- | config-model/src/main/javacc/SchemaParser.jj | 22 |
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". */ |