In This Article

JsonParser Class

Represents a parser for the JSON language.

public class JsonParser : LLParserBase, ILLParser, IParser, IKeyedObject
Inheritance:
object ParserBase LLParserBase object
Implements:
ILLParser IParser IKeyedObject

Constructors

JsonParser(Grammar?)

Represents a parser for the JSON language.

public JsonParser(Grammar? grammar = null)
Parameter Type Description
grammar Grammar

The optional Grammar instance to use, with a new JsonGrammar being created if none is specified.

Properties

AreCommentsSupported

Indicates whether comments can recognized and tokenized by the lexer created in CreateTokenReader(ITextBufferReader).

public bool AreCommentsSupported { get; set; }

Property Value

bool:

The default value is false.

Remarks

Comments are not supported by standard JSON, and are therefore lexer support is not enabled by default. However JavaScript style comments are supported by Microsoft's JSONC (JSON with Comments) variant. Set this property to true to allow the lexer to recognize comment tokens.

Methods

CreateParseData(IParseRequest, IParserState)

Creates an IParseData for the specified IParserState, after the parse operation has completed.

protected override IParseData? CreateParseData(IParseRequest request, IParserState state)
Parameter Type Description
request IParseRequest

The IParseRequest that contains data about the requested parsing operation.

state IParserState

The IParserState to examine.

Returns

IParseData

CreateTokenReader(ITextBufferReader)

Creates an ITokenReader that is used by the parser to read through tokens.

public override ITokenReader CreateTokenReader(ITextBufferReader reader)
Parameter Type Description
reader ITextBufferReader

The ITextBufferReader that provides access to the text buffer.

Returns

ITokenReader

InitializeParserState(IParserState, IParseRequest)

Initializes the IParserState, allowing its CustomData property to be configured based on data from the IParseRequest, immediately prior to the parse operation running.

protected override void InitializeParserState(IParserState state, IParseRequest request)
Parameter Type Description
state IParserState

The IParserState to initialize.

request IParseRequest

The IParseRequest that initiated the parse operation.

Inherited Members

Extension Methods