mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Json Parser Regeneration
[json] change from field access to accessor call [json] regenerate parser files Merge-request: FLEET-MR-7014 Merged-by: Boris Krylov <Boris.Krylov@jetbrains.com> GitOrigin-RevId: ece460b732d324db447e12ae215e5c5f3aef2d1e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
65121180ff
commit
c14e322043
@@ -39,8 +39,8 @@ public final class JsonNamesValidator implements NamesValidator {
|
||||
myLexer.start(name);
|
||||
SyntaxElementType type = myLexer.getTokenType();
|
||||
|
||||
return myLexer.getTokenEnd() == name.length() && (type == JsonSyntaxElementTypes.DOUBLE_QUOTED_STRING ||
|
||||
type == JsonSyntaxElementTypes.SINGLE_QUOTED_STRING);
|
||||
return myLexer.getTokenEnd() == name.length() && (type == JsonSyntaxElementTypes.INSTANCE.getDOUBLE_QUOTED_STRING() ||
|
||||
type == JsonSyntaxElementTypes.INSTANCE.getSINGLE_QUOTED_STRING());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -97,16 +97,16 @@ public final class JsonSchemaFileValuesIndex extends FileBasedIndexExtension<Str
|
||||
while (!(idFound && schemaFound && obsoleteIdFound) && lexer.getTokenStart() < lexer.getBufferEnd()) {
|
||||
SyntaxElementType token = lexer.getTokenType();
|
||||
// Nesting level can only change at curly braces.
|
||||
if (token == JsonSyntaxElementTypes.L_CURLY) {
|
||||
if (token == JsonSyntaxElementTypes.INSTANCE.getL_CURLY()) {
|
||||
nesting++;
|
||||
}
|
||||
else if (token == JsonSyntaxElementTypes.R_CURLY) {
|
||||
else if (token == JsonSyntaxElementTypes.INSTANCE.getR_CURLY()) {
|
||||
nesting--;
|
||||
}
|
||||
else if (nesting == 1 &&
|
||||
(token == JsonSyntaxElementTypes.DOUBLE_QUOTED_STRING
|
||||
|| token == JsonSyntaxElementTypes.SINGLE_QUOTED_STRING
|
||||
|| token == JsonSyntaxElementTypes.IDENTIFIER)) {
|
||||
(token == JsonSyntaxElementTypes.INSTANCE.getDOUBLE_QUOTED_STRING()
|
||||
|| token == JsonSyntaxElementTypes.INSTANCE.getSINGLE_QUOTED_STRING()
|
||||
|| token == JsonSyntaxElementTypes.INSTANCE.getIDENTIFIER())) {
|
||||
// We are looking for two special properties at the root level.
|
||||
switch (lexer.getTokenText()) {
|
||||
case "$id", "\"$id\"", "'$id'" -> idFound |= captureValueIfString(lexer, map, JsonCachedValues.ID_CACHE_KEY);
|
||||
@@ -126,10 +126,10 @@ public final class JsonSchemaFileValuesIndex extends FileBasedIndexExtension<Str
|
||||
SyntaxElementType token;
|
||||
lexer.advance();
|
||||
token = skipWhitespacesAndGetTokenType(lexer);
|
||||
if (token == JsonSyntaxElementTypes.COLON) {
|
||||
if (token == JsonSyntaxElementTypes.INSTANCE.getCOLON()) {
|
||||
lexer.advance();
|
||||
token = skipWhitespacesAndGetTokenType(lexer);
|
||||
if (token == JsonSyntaxElementTypes.DOUBLE_QUOTED_STRING || token == JsonSyntaxElementTypes.SINGLE_QUOTED_STRING) {
|
||||
if (token == JsonSyntaxElementTypes.INSTANCE.getDOUBLE_QUOTED_STRING() || token == JsonSyntaxElementTypes.INSTANCE.getSINGLE_QUOTED_STRING()) {
|
||||
String text = lexer.getTokenText();
|
||||
destMap.put(key, text.length() <= 1 ? "" : text.substring(1, text.length() - 1));
|
||||
return true;
|
||||
@@ -140,8 +140,8 @@ public final class JsonSchemaFileValuesIndex extends FileBasedIndexExtension<Str
|
||||
|
||||
private static @Nullable SyntaxElementType skipWhitespacesAndGetTokenType(@NotNull Lexer lexer) {
|
||||
while ( lexer.getTokenType() == SyntaxTokenTypes.getWHITE_SPACE() ||
|
||||
lexer.getTokenType() == JsonSyntaxElementTypes.LINE_COMMENT ||
|
||||
lexer.getTokenType() == JsonSyntaxElementTypes.BLOCK_COMMENT) {
|
||||
lexer.getTokenType() == JsonSyntaxElementTypes.INSTANCE.getLINE_COMMENT() ||
|
||||
lexer.getTokenType() == JsonSyntaxElementTypes.INSTANCE.getBLOCK_COMMENT()) {
|
||||
lexer.advance();
|
||||
}
|
||||
return lexer.getTokenType();
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package com.intellij.json.psi;
|
||||
|
||||
@@ -18,32 +16,32 @@ public class JsonElementTypeConverterFactory implements ElementTypeConverterFact
|
||||
@Override
|
||||
public @NotNull ElementTypeConverter getElementTypeConverter() {
|
||||
return ElementTypeConverterKt.elementTypeConverterOf(
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.ARRAY, JsonElementTypes.ARRAY),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.BOOLEAN_LITERAL, JsonElementTypes.BOOLEAN_LITERAL),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.LITERAL, JsonElementTypes.LITERAL),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.NULL_LITERAL, JsonElementTypes.NULL_LITERAL),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.NUMBER_LITERAL, JsonElementTypes.NUMBER_LITERAL),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.OBJECT, JsonElementTypes.OBJECT),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.PROPERTY, JsonElementTypes.PROPERTY),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.REFERENCE_EXPRESSION, JsonElementTypes.REFERENCE_EXPRESSION),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.STRING_LITERAL, JsonElementTypes.STRING_LITERAL),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.VALUE, JsonElementTypes.VALUE),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getARRAY(), JsonElementTypes.ARRAY),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getBOOLEAN_LITERAL(), JsonElementTypes.BOOLEAN_LITERAL),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getLITERAL(), JsonElementTypes.LITERAL),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getNULL_LITERAL(), JsonElementTypes.NULL_LITERAL),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getNUMBER_LITERAL(), JsonElementTypes.NUMBER_LITERAL),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getOBJECT(), JsonElementTypes.OBJECT),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getPROPERTY(), JsonElementTypes.PROPERTY),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getREFERENCE_EXPRESSION(), JsonElementTypes.REFERENCE_EXPRESSION),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getSTRING_LITERAL(), JsonElementTypes.STRING_LITERAL),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getVALUE(), JsonElementTypes.VALUE),
|
||||
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.L_CURLY, JsonElementTypes.L_CURLY),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.R_CURLY, JsonElementTypes.R_CURLY),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.L_BRACKET, JsonElementTypes.L_BRACKET),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.R_BRACKET, JsonElementTypes.R_BRACKET),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.COMMA, JsonElementTypes.COMMA),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.COLON, JsonElementTypes.COLON),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.LINE_COMMENT, JsonElementTypes.LINE_COMMENT),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.BLOCK_COMMENT, JsonElementTypes.BLOCK_COMMENT),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.DOUBLE_QUOTED_STRING, JsonElementTypes.DOUBLE_QUOTED_STRING),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.SINGLE_QUOTED_STRING, JsonElementTypes.SINGLE_QUOTED_STRING),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.NUMBER, JsonElementTypes.NUMBER),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.TRUE, JsonElementTypes.TRUE),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.FALSE, JsonElementTypes.FALSE),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.NULL, JsonElementTypes.NULL),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.IDENTIFIER, JsonElementTypes.IDENTIFIER)
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getL_CURLY(), JsonElementTypes.L_CURLY),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getR_CURLY(), JsonElementTypes.R_CURLY),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getL_BRACKET(), JsonElementTypes.L_BRACKET),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getR_BRACKET(), JsonElementTypes.R_BRACKET),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getCOMMA(), JsonElementTypes.COMMA),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getCOLON(), JsonElementTypes.COLON),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getLINE_COMMENT(), JsonElementTypes.LINE_COMMENT),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getBLOCK_COMMENT(), JsonElementTypes.BLOCK_COMMENT),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getDOUBLE_QUOTED_STRING(), JsonElementTypes.DOUBLE_QUOTED_STRING),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getSINGLE_QUOTED_STRING(), JsonElementTypes.SINGLE_QUOTED_STRING),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getNUMBER(), JsonElementTypes.NUMBER),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getTRUE(), JsonElementTypes.TRUE),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getFALSE(), JsonElementTypes.FALSE),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getNULL(), JsonElementTypes.NULL),
|
||||
new Pair<SyntaxElementType, IElementType>(JsonSyntaxElementTypes.INSTANCE.getIDENTIFIER(), JsonElementTypes.IDENTIFIER)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ val JSON_FILE: IFileElementType = object : IFileElementType(JsonLanguage.INSTANC
|
||||
getSyntaxParserRuntimeFactory(language).buildParserRuntime(syntaxBuilder.getSyntaxTreeBuilder())
|
||||
val convertedElement = getConverter(language).convert(elementType)
|
||||
assert(convertedElement != null) { "Failed convert element type: $elementType" }
|
||||
JsonSyntaxParser().parse(convertedElement!!, runtimeParserRuntime)
|
||||
JsonSyntaxParser.parse(convertedElement!!, runtimeParserRuntime)
|
||||
return syntaxBuilder.getTreeBuilt().getFirstChildNode()
|
||||
}
|
||||
}
|
||||
@@ -55,7 +55,7 @@ val JSON5_FILE: IFileElementType = object : IFileElementType(Json5Language.INSTA
|
||||
getSyntaxParserRuntimeFactory(Json5Language.INSTANCE).buildParserRuntime(syntaxBuilder.getSyntaxTreeBuilder())
|
||||
val convertedElement = getConverter(language).convert(elementType)
|
||||
assert(convertedElement != null) { "Failed convert element type: $elementType" }
|
||||
JsonSyntaxParser().parse(convertedElement!!, runtimeParserRuntime)
|
||||
JsonSyntaxParser.parse(convertedElement!!, runtimeParserRuntime)
|
||||
|
||||
return syntaxBuilder.getTreeBuilt().getFirstChildNode()
|
||||
}
|
||||
@@ -77,7 +77,7 @@ val JSON_LINES_FILE: IFileElementType = object : IFileElementType(JsonLinesLangu
|
||||
val runtimeParserRuntime =
|
||||
getSyntaxParserRuntimeFactory(Json5Language.INSTANCE).buildParserRuntime(syntaxBuilder.getSyntaxTreeBuilder())
|
||||
|
||||
JsonSyntaxParser().parse(ElementTypeConverters.getConverter(language).convert(elementType)!!, runtimeParserRuntime)
|
||||
JsonSyntaxParser.parse(ElementTypeConverters.getConverter(language).convert(elementType)!!, runtimeParserRuntime)
|
||||
return syntaxBuilder.getTreeBuilt().getFirstChildNode()
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ public final class JsonTokenSets {
|
||||
public static final TokenSet STRING_LITERALS = TokenSet.create(SINGLE_QUOTED_STRING, DOUBLE_QUOTED_STRING);
|
||||
|
||||
public static final TokenSet JSON_CONTAINERS = TokenSet.create(OBJECT, ARRAY);
|
||||
public static final SyntaxElementTypeSet JSON_KEYWORDS = syntaxElementTypeSetOf(JsonSyntaxElementTypes.TRUE, JsonSyntaxElementTypes.FALSE, JsonSyntaxElementTypes.NULL);
|
||||
public static final SyntaxElementTypeSet JSON_KEYWORDS = syntaxElementTypeSetOf(JsonSyntaxElementTypes.INSTANCE.getTRUE(), JsonSyntaxElementTypes.INSTANCE.getFALSE(), JsonSyntaxElementTypes.INSTANCE.getNULL());
|
||||
public static final TokenSet JSON_LITERALS = TokenSet.create(STRING_LITERAL, NUMBER_LITERAL, NULL_LITERAL, TRUE, FALSE);
|
||||
public static final TokenSet JSON_COMMENTARIES = TokenSet.create(BLOCK_COMMENT, LINE_COMMENT);
|
||||
}
|
||||
@@ -1,59 +1,36 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package com.intellij.json.syntax
|
||||
|
||||
import com.intellij.platform.syntax.SyntaxElementType
|
||||
import kotlin.jvm.JvmField
|
||||
import com.intellij.platform.syntax.SyntaxElementTypeSet
|
||||
import com.intellij.platform.syntax.syntaxElementTypeSetOf
|
||||
|
||||
object JsonSyntaxElementTypes {
|
||||
@JvmField
|
||||
val ARRAY = SyntaxElementType("ARRAY")
|
||||
@JvmField
|
||||
val BOOLEAN_LITERAL = SyntaxElementType("BOOLEAN_LITERAL")
|
||||
@JvmField
|
||||
val LITERAL = SyntaxElementType("LITERAL")
|
||||
@JvmField
|
||||
val NULL_LITERAL = SyntaxElementType("NULL_LITERAL")
|
||||
@JvmField
|
||||
val NUMBER_LITERAL = SyntaxElementType("NUMBER_LITERAL")
|
||||
@JvmField
|
||||
val OBJECT = SyntaxElementType("OBJECT")
|
||||
@JvmField
|
||||
val PROPERTY = SyntaxElementType("PROPERTY")
|
||||
@JvmField
|
||||
val REFERENCE_EXPRESSION = SyntaxElementType("REFERENCE_EXPRESSION")
|
||||
@JvmField
|
||||
val STRING_LITERAL = SyntaxElementType("STRING_LITERAL")
|
||||
@JvmField
|
||||
val VALUE = SyntaxElementType("VALUE")
|
||||
|
||||
@JvmField
|
||||
val BLOCK_COMMENT = SyntaxElementType("BLOCK_COMMENT")
|
||||
@JvmField
|
||||
val COLON = SyntaxElementType(":")
|
||||
@JvmField
|
||||
val COMMA = SyntaxElementType(",")
|
||||
@JvmField
|
||||
val DOUBLE_QUOTED_STRING = SyntaxElementType("DOUBLE_QUOTED_STRING")
|
||||
@JvmField
|
||||
val FALSE = SyntaxElementType("false")
|
||||
@JvmField
|
||||
val IDENTIFIER = SyntaxElementType("IDENTIFIER")
|
||||
@JvmField
|
||||
val LINE_COMMENT = SyntaxElementType("LINE_COMMENT")
|
||||
@JvmField
|
||||
val L_BRACKET = SyntaxElementType("[")
|
||||
@JvmField
|
||||
val L_CURLY = SyntaxElementType("{")
|
||||
@JvmField
|
||||
val NULL = SyntaxElementType("null")
|
||||
@JvmField
|
||||
val NUMBER = SyntaxElementType("NUMBER")
|
||||
@JvmField
|
||||
val R_BRACKET = SyntaxElementType("]")
|
||||
@JvmField
|
||||
val R_CURLY = SyntaxElementType("}")
|
||||
@JvmField
|
||||
val SINGLE_QUOTED_STRING = SyntaxElementType("SINGLE_QUOTED_STRING")
|
||||
@JvmField
|
||||
val TRUE = SyntaxElementType("true")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,349 +1,341 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package com.intellij.json.syntax
|
||||
|
||||
import com.intellij.platform.syntax.SyntaxElementType
|
||||
import com.intellij.platform.syntax.SyntaxElementTypeSet
|
||||
import com.intellij.platform.syntax.parser.SyntaxTreeBuilder.Marker
|
||||
import com.intellij.platform.syntax.util.runtime.*
|
||||
import com.intellij.platform.syntax.util.runtime.Modifiers.Companion._AND_
|
||||
import com.intellij.platform.syntax.util.runtime.Modifiers.Companion._COLLAPSE_
|
||||
import com.intellij.platform.syntax.util.runtime.Modifiers.Companion._NONE_
|
||||
import com.intellij.platform.syntax.util.runtime.Modifiers.Companion._NOT_
|
||||
import com.intellij.platform.syntax.parser.SyntaxTreeBuilder.Marker
|
||||
import com.intellij.platform.syntax.SyntaxElementTypeSet
|
||||
import com.intellij.platform.syntax.syntaxElementTypeSetOf
|
||||
import com.intellij.platform.syntax.SyntaxElementType
|
||||
|
||||
@Suppress("unused", "FunctionName", "JoinDeclarationAndAssignment")
|
||||
class JsonSyntaxParser {
|
||||
object JsonSyntaxParser {
|
||||
|
||||
fun parse(t: SyntaxElementType, s: SyntaxGeneratedParserRuntime) {
|
||||
var r: Boolean
|
||||
s.init(::parse, EXTENDS_SETS_)
|
||||
val m: Marker = s.enter_section_(0, _COLLAPSE_, null)
|
||||
r = parse_root_(t, s)
|
||||
val m: Marker = s.enter_section_(0, Modifiers._COLLAPSE_, null)
|
||||
r = parse_root_(t, s, 0)
|
||||
s.exit_section_(0, m, t, r, true, TRUE_CONDITION)
|
||||
}
|
||||
|
||||
protected fun parse_root_(t: SyntaxElementType, s: SyntaxGeneratedParserRuntime): Boolean {
|
||||
return parse_root_(t, s, 0)
|
||||
internal fun parse_root_(t: SyntaxElementType, s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
return json(s, l + 1)
|
||||
}
|
||||
|
||||
companion object {
|
||||
internal fun parse_root_(t: SyntaxElementType, s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
return json(s, l + 1)
|
||||
}
|
||||
|
||||
val EXTENDS_SETS_: Array<SyntaxElementTypeSet> = arrayOf(
|
||||
create_token_set_(JsonSyntaxElementTypes.ARRAY, JsonSyntaxElementTypes.BOOLEAN_LITERAL, JsonSyntaxElementTypes.LITERAL, JsonSyntaxElementTypes.NULL_LITERAL,
|
||||
JsonSyntaxElementTypes.NUMBER_LITERAL, JsonSyntaxElementTypes.OBJECT, JsonSyntaxElementTypes.REFERENCE_EXPRESSION, JsonSyntaxElementTypes.STRING_LITERAL,
|
||||
JsonSyntaxElementTypes.VALUE),
|
||||
)
|
||||
|
||||
/* ********************************************************** */
|
||||
// '[' array_element* ']'
|
||||
fun array(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "array")) return false
|
||||
if (!s.nextTokenIs(JsonSyntaxElementTypes.L_BRACKET)) return false
|
||||
var r: Boolean
|
||||
var p: Boolean
|
||||
val m: Marker = s.enter_section_(l, _NONE_, JsonSyntaxElementTypes.ARRAY, null)
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.L_BRACKET)
|
||||
p = r // pin = 1
|
||||
r = r && s.report_error_(array_1(s, l + 1))
|
||||
r = p && s.consumeToken(JsonSyntaxElementTypes.R_BRACKET) && r
|
||||
s.exit_section_(l, m, r, p, null)
|
||||
return r || p
|
||||
}
|
||||
|
||||
// array_element*
|
||||
private fun array_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "array_1")) return false
|
||||
while (true) {
|
||||
val c: Int = s.current_position_()
|
||||
if (!array_element(s, l + 1)) break
|
||||
if (!s.empty_element_parsed_guard_("array_1", c)) break
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// value (','|&']')
|
||||
internal fun array_element(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "array_element")) return false
|
||||
var r: Boolean
|
||||
var p: Boolean
|
||||
val m: Marker = s.enter_section_(l, _NONE_)
|
||||
r = `value_$`(s, l + 1)
|
||||
p = r // pin = 1
|
||||
r = r && array_element_1(s, l + 1)
|
||||
s.exit_section_(l, m, r, p, JsonSyntaxParser::not_bracket_or_next_value)
|
||||
return r || p
|
||||
}
|
||||
|
||||
// ','|&']'
|
||||
private fun array_element_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "array_element_1")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_()
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.COMMA)
|
||||
if (!r) r = array_element_1_1(s, l + 1)
|
||||
s.exit_section_(m, null, r)
|
||||
return r
|
||||
}
|
||||
|
||||
// &']'
|
||||
private fun array_element_1_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "array_element_1_1")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, _AND_)
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.R_BRACKET)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// TRUE | FALSE
|
||||
fun boolean_literal(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "boolean_literal")) return false
|
||||
if (!s.nextTokenIs("<boolean literal>", JsonSyntaxElementTypes.FALSE, JsonSyntaxElementTypes.TRUE)) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, _NONE_, JsonSyntaxElementTypes.BOOLEAN_LITERAL, "<boolean literal>")
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.TRUE)
|
||||
if (!r) r = s.consumeToken(JsonSyntaxElementTypes.FALSE)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// value*
|
||||
internal fun json(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "json")) return false
|
||||
while (true) {
|
||||
val c: Int = s.current_position_()
|
||||
if (!`value_$`(s, l + 1)) break
|
||||
if (!s.empty_element_parsed_guard_("json", c)) break
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// string_literal | number_literal | boolean_literal | null_literal
|
||||
fun literal(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "literal")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, _COLLAPSE_, JsonSyntaxElementTypes.LITERAL, "<literal>")
|
||||
r = string_literal(s, l + 1)
|
||||
if (!r) r = number_literal(s, l + 1)
|
||||
if (!r) r = boolean_literal(s, l + 1)
|
||||
if (!r) r = null_literal(s, l + 1)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// !('}'|value)
|
||||
internal fun not_brace_or_next_value(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "not_brace_or_next_value")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, _NOT_)
|
||||
r = !not_brace_or_next_value_0(s, l + 1)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
// '}'|value
|
||||
private fun not_brace_or_next_value_0(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "not_brace_or_next_value_0")) return false
|
||||
var r: Boolean
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.R_CURLY)
|
||||
if (!r) r = `value_$`(s, l + 1)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// !(']'|value)
|
||||
internal fun not_bracket_or_next_value(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "not_bracket_or_next_value")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, _NOT_)
|
||||
r = !not_bracket_or_next_value_0(s, l + 1)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
// ']'|value
|
||||
private fun not_bracket_or_next_value_0(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "not_bracket_or_next_value_0")) return false
|
||||
var r: Boolean
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.R_BRACKET)
|
||||
if (!r) r = `value_$`(s, l + 1)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// NULL
|
||||
fun null_literal(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "null_literal")) return false
|
||||
if (!s.nextTokenIs(JsonSyntaxElementTypes.NULL)) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_()
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.NULL)
|
||||
s.exit_section_(m, JsonSyntaxElementTypes.NULL_LITERAL, r)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// NUMBER
|
||||
fun number_literal(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "number_literal")) return false
|
||||
if (!s.nextTokenIs(JsonSyntaxElementTypes.NUMBER)) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_()
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.NUMBER)
|
||||
s.exit_section_(m, JsonSyntaxElementTypes.NUMBER_LITERAL, r)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// '{' object_element* '}'
|
||||
fun `object_$`(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "`object_$`")) return false
|
||||
if (!s.nextTokenIs(JsonSyntaxElementTypes.L_CURLY)) return false
|
||||
var r: Boolean
|
||||
var p: Boolean
|
||||
val m: Marker = s.enter_section_(l, _NONE_, JsonSyntaxElementTypes.OBJECT, null)
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.L_CURLY)
|
||||
p = r // pin = 1
|
||||
r = r && s.report_error_(object_1(s, l + 1))
|
||||
r = p && s.consumeToken(JsonSyntaxElementTypes.R_CURLY) && r
|
||||
s.exit_section_(l, m, r, p, null)
|
||||
return r || p
|
||||
}
|
||||
|
||||
// object_element*
|
||||
private fun object_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "object_1")) return false
|
||||
while (true) {
|
||||
val c: Int = s.current_position_()
|
||||
if (!object_element(s, l + 1)) break
|
||||
if (!s.empty_element_parsed_guard_("object_1", c)) break
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// property (','|&'}')
|
||||
internal fun object_element(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "object_element")) return false
|
||||
var r: Boolean
|
||||
var p: Boolean
|
||||
val m: Marker = s.enter_section_(l, _NONE_)
|
||||
r = `property_$`(s, l + 1)
|
||||
p = r // pin = 1
|
||||
r = r && object_element_1(s, l + 1)
|
||||
s.exit_section_(l, m, r, p, JsonSyntaxParser::not_brace_or_next_value)
|
||||
return r || p
|
||||
}
|
||||
|
||||
// ','|&'}'
|
||||
private fun object_element_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "object_element_1")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_()
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.COMMA)
|
||||
if (!r) r = object_element_1_1(s, l + 1)
|
||||
s.exit_section_(m, null, r)
|
||||
return r
|
||||
}
|
||||
|
||||
// &'}'
|
||||
private fun object_element_1_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "object_element_1_1")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, _AND_)
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.R_CURLY)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// property_name (':' property_value)
|
||||
fun `property_$`(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "`property_$`")) return false
|
||||
var r: Boolean
|
||||
var p: Boolean
|
||||
val m: Marker = s.enter_section_(l, _NONE_, JsonSyntaxElementTypes.PROPERTY, "<property>")
|
||||
r = property_name(s, l + 1)
|
||||
p = r // pin = 1
|
||||
r = r && property_1(s, l + 1)
|
||||
s.exit_section_(l, m, r, p, null)
|
||||
return r || p
|
||||
}
|
||||
|
||||
// ':' property_value
|
||||
private fun property_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "property_1")) return false
|
||||
var r: Boolean
|
||||
var p: Boolean
|
||||
val m: Marker = s.enter_section_(l, _NONE_)
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.COLON)
|
||||
p = r // pin = 1
|
||||
r = r && property_value(s, l + 1)
|
||||
s.exit_section_(l, m, r, p, null)
|
||||
return r || p
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// literal | reference_expression
|
||||
internal fun property_name(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "property_name")) return false
|
||||
var r: Boolean
|
||||
r = literal(s, l + 1)
|
||||
if (!r) r = reference_expression(s, l + 1)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// value
|
||||
internal fun property_value(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
return `value_$`(s, l + 1)
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// IDENTIFIER
|
||||
fun reference_expression(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "reference_expression")) return false
|
||||
if (!s.nextTokenIs(JsonSyntaxElementTypes.IDENTIFIER)) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_()
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.IDENTIFIER)
|
||||
s.exit_section_(m, JsonSyntaxElementTypes.REFERENCE_EXPRESSION, r)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// SINGLE_QUOTED_STRING | DOUBLE_QUOTED_STRING
|
||||
fun string_literal(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "string_literal")) return false
|
||||
if (!s.nextTokenIs("<string literal>", JsonSyntaxElementTypes.DOUBLE_QUOTED_STRING, JsonSyntaxElementTypes.SINGLE_QUOTED_STRING)) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, _NONE_, JsonSyntaxElementTypes.STRING_LITERAL, "<string literal>")
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.SINGLE_QUOTED_STRING)
|
||||
if (!r) r = s.consumeToken(JsonSyntaxElementTypes.DOUBLE_QUOTED_STRING)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// object | array | literal | reference_expression
|
||||
fun `value_$`(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "`value_$`")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, _COLLAPSE_, JsonSyntaxElementTypes.VALUE, "<value>")
|
||||
r = `object_$`(s, l + 1)
|
||||
if (!r) r = array(s, l + 1)
|
||||
if (!r) r = literal(s, l + 1)
|
||||
if (!r) r = reference_expression(s, l + 1)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
val EXTENDS_SETS_: Array<SyntaxElementTypeSet> = arrayOf(
|
||||
create_token_set_(JsonSyntaxElementTypes.ARRAY, JsonSyntaxElementTypes.BOOLEAN_LITERAL, JsonSyntaxElementTypes.LITERAL, JsonSyntaxElementTypes.NULL_LITERAL,
|
||||
JsonSyntaxElementTypes.NUMBER_LITERAL, JsonSyntaxElementTypes.OBJECT, JsonSyntaxElementTypes.REFERENCE_EXPRESSION, JsonSyntaxElementTypes.STRING_LITERAL,
|
||||
JsonSyntaxElementTypes.VALUE),
|
||||
)
|
||||
|
||||
/* ********************************************************** */
|
||||
// '[' array_element* ']'
|
||||
fun array(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "array")) return false
|
||||
if (!s.nextTokenIs(JsonSyntaxElementTypes.L_BRACKET)) return false
|
||||
var r: Boolean
|
||||
var p: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._NONE_, JsonSyntaxElementTypes.ARRAY, null)
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.L_BRACKET)
|
||||
p = r // pin = 1
|
||||
r = r && s.report_error_(array_1(s, l + 1))
|
||||
r = p && s.consumeToken(JsonSyntaxElementTypes.R_BRACKET) && r
|
||||
s.exit_section_(l, m, r, p, null)
|
||||
return r || p
|
||||
}
|
||||
|
||||
// array_element*
|
||||
private fun array_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "array_1")) return false
|
||||
while (true) {
|
||||
val c: Int = s.current_position_()
|
||||
if (!array_element(s, l + 1)) break
|
||||
if (!s.empty_element_parsed_guard_("array_1", c)) break
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// value (','|&']')
|
||||
internal fun array_element(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "array_element")) return false
|
||||
var r: Boolean
|
||||
var p: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._NONE_)
|
||||
r = value__(s, l + 1)
|
||||
p = r // pin = 1
|
||||
r = r && array_element_1(s, l + 1)
|
||||
s.exit_section_(l, m, r, p, JsonSyntaxParser::not_bracket_or_next_value)
|
||||
return r || p
|
||||
}
|
||||
|
||||
// ','|&']'
|
||||
private fun array_element_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "array_element_1")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_()
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.COMMA)
|
||||
if (!r) r = array_element_1_1(s, l + 1)
|
||||
s.exit_section_(m, null, r)
|
||||
return r
|
||||
}
|
||||
|
||||
// &']'
|
||||
private fun array_element_1_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "array_element_1_1")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._AND_)
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.R_BRACKET)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// TRUE | FALSE
|
||||
fun boolean_literal(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "boolean_literal")) return false
|
||||
if (!s.nextTokenIs("<boolean literal>", JsonSyntaxElementTypes.FALSE, JsonSyntaxElementTypes.TRUE)) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._NONE_, JsonSyntaxElementTypes.BOOLEAN_LITERAL, "<boolean literal>")
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.TRUE)
|
||||
if (!r) r = s.consumeToken(JsonSyntaxElementTypes.FALSE)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// value*
|
||||
internal fun json(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "json")) return false
|
||||
while (true) {
|
||||
val c: Int = s.current_position_()
|
||||
if (!value__(s, l + 1)) break
|
||||
if (!s.empty_element_parsed_guard_("json", c)) break
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// string_literal | number_literal | boolean_literal | null_literal
|
||||
fun literal(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "literal")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._COLLAPSE_, JsonSyntaxElementTypes.LITERAL, "<literal>")
|
||||
r = string_literal(s, l + 1)
|
||||
if (!r) r = number_literal(s, l + 1)
|
||||
if (!r) r = boolean_literal(s, l + 1)
|
||||
if (!r) r = null_literal(s, l + 1)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// !('}'|value)
|
||||
internal fun not_brace_or_next_value(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "not_brace_or_next_value")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._NOT_)
|
||||
r = !not_brace_or_next_value_0(s, l + 1)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
// '}'|value
|
||||
private fun not_brace_or_next_value_0(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "not_brace_or_next_value_0")) return false
|
||||
var r: Boolean
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.R_CURLY)
|
||||
if (!r) r = value__(s, l + 1)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// !(']'|value)
|
||||
internal fun not_bracket_or_next_value(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "not_bracket_or_next_value")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._NOT_)
|
||||
r = !not_bracket_or_next_value_0(s, l + 1)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
// ']'|value
|
||||
private fun not_bracket_or_next_value_0(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "not_bracket_or_next_value_0")) return false
|
||||
var r: Boolean
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.R_BRACKET)
|
||||
if (!r) r = value__(s, l + 1)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// NULL
|
||||
fun null_literal(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "null_literal")) return false
|
||||
if (!s.nextTokenIs(JsonSyntaxElementTypes.NULL)) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_()
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.NULL)
|
||||
s.exit_section_(m, JsonSyntaxElementTypes.NULL_LITERAL, r)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// NUMBER
|
||||
fun number_literal(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "number_literal")) return false
|
||||
if (!s.nextTokenIs(JsonSyntaxElementTypes.NUMBER)) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_()
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.NUMBER)
|
||||
s.exit_section_(m, JsonSyntaxElementTypes.NUMBER_LITERAL, r)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// '{' object_element* '}'
|
||||
fun object__(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "object__")) return false
|
||||
if (!s.nextTokenIs(JsonSyntaxElementTypes.L_CURLY)) return false
|
||||
var r: Boolean
|
||||
var p: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._NONE_, JsonSyntaxElementTypes.OBJECT, null)
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.L_CURLY)
|
||||
p = r // pin = 1
|
||||
r = r && s.report_error_(object_1(s, l + 1))
|
||||
r = p && s.consumeToken(JsonSyntaxElementTypes.R_CURLY) && r
|
||||
s.exit_section_(l, m, r, p, null)
|
||||
return r || p
|
||||
}
|
||||
|
||||
// object_element*
|
||||
private fun object_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "object_1")) return false
|
||||
while (true) {
|
||||
val c: Int = s.current_position_()
|
||||
if (!object_element(s, l + 1)) break
|
||||
if (!s.empty_element_parsed_guard_("object_1", c)) break
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// property (','|&'}')
|
||||
internal fun object_element(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "object_element")) return false
|
||||
var r: Boolean
|
||||
var p: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._NONE_)
|
||||
r = property__(s, l + 1)
|
||||
p = r // pin = 1
|
||||
r = r && object_element_1(s, l + 1)
|
||||
s.exit_section_(l, m, r, p, JsonSyntaxParser::not_brace_or_next_value)
|
||||
return r || p
|
||||
}
|
||||
|
||||
// ','|&'}'
|
||||
private fun object_element_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "object_element_1")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_()
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.COMMA)
|
||||
if (!r) r = object_element_1_1(s, l + 1)
|
||||
s.exit_section_(m, null, r)
|
||||
return r
|
||||
}
|
||||
|
||||
// &'}'
|
||||
private fun object_element_1_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "object_element_1_1")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._AND_)
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.R_CURLY)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// property_name (':' property_value)
|
||||
fun property__(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "property__")) return false
|
||||
var r: Boolean
|
||||
var p: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._NONE_, JsonSyntaxElementTypes.PROPERTY, "<property>")
|
||||
r = property_name(s, l + 1)
|
||||
p = r // pin = 1
|
||||
r = r && property_1(s, l + 1)
|
||||
s.exit_section_(l, m, r, p, null)
|
||||
return r || p
|
||||
}
|
||||
|
||||
// ':' property_value
|
||||
private fun property_1(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "property_1")) return false
|
||||
var r: Boolean
|
||||
var p: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._NONE_)
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.COLON)
|
||||
p = r // pin = 1
|
||||
r = r && property_value(s, l + 1)
|
||||
s.exit_section_(l, m, r, p, null)
|
||||
return r || p
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// literal | reference_expression
|
||||
internal fun property_name(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "property_name")) return false
|
||||
var r: Boolean
|
||||
r = literal(s, l + 1)
|
||||
if (!r) r = reference_expression(s, l + 1)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// value
|
||||
internal fun property_value(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
return value__(s, l + 1)
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// IDENTIFIER
|
||||
fun reference_expression(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "reference_expression")) return false
|
||||
if (!s.nextTokenIs(JsonSyntaxElementTypes.IDENTIFIER)) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_()
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.IDENTIFIER)
|
||||
s.exit_section_(m, JsonSyntaxElementTypes.REFERENCE_EXPRESSION, r)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// SINGLE_QUOTED_STRING | DOUBLE_QUOTED_STRING
|
||||
fun string_literal(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "string_literal")) return false
|
||||
if (!s.nextTokenIs("<string literal>", JsonSyntaxElementTypes.DOUBLE_QUOTED_STRING, JsonSyntaxElementTypes.SINGLE_QUOTED_STRING)) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._NONE_, JsonSyntaxElementTypes.STRING_LITERAL, "<string literal>")
|
||||
r = s.consumeToken(JsonSyntaxElementTypes.SINGLE_QUOTED_STRING)
|
||||
if (!r) r = s.consumeToken(JsonSyntaxElementTypes.DOUBLE_QUOTED_STRING)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// object | array | literal | reference_expression
|
||||
fun value__(s: SyntaxGeneratedParserRuntime, l: Int): Boolean {
|
||||
if (!s.recursion_guard_(l, "value__")) return false
|
||||
var r: Boolean
|
||||
val m: Marker = s.enter_section_(l, Modifiers._COLLAPSE_, JsonSyntaxElementTypes.VALUE, "<value>")
|
||||
r = object__(s, l + 1)
|
||||
if (!r) r = array(s, l + 1)
|
||||
if (!r) r = literal(s, l + 1)
|
||||
if (!r) r = reference_expression(s, l + 1)
|
||||
s.exit_section_(l, m, r, false, null)
|
||||
return r
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user