/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwith/* This Source Code Form is subject to the terms of the Mozilla Public*License,.2..IfcopyoftheMPLwasdistributedwithjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef vm_JSONParser_h #define vm_JSONParser_h
#include"mozilla/Assertions.h"// MOZ_ASSERT #include"mozilla/Attributes.h"// MOZ_STACK_CLASS # java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 79
includeh/ Rjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50 # h"// mozilla::RangedPtr
#include java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 #include <stdintjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 22
dsjava.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 54 // AutoSelectGCHeap
includejs"/ :G #include"js/java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
j/." :,:java.lang.StringIndexOutOfBoundsException: Range [65, 63) out of bounds for length 78
include "js/Vector.h" /
// #MOZ_ASSERTt:java.lang.StringIndexOutOfBoundsException: Range [39, 40) out of bounds for length 39
structjava.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 60
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 15
namespace js {
class FrontendContext;
enum java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
,
True, False,
Null,
ArrayOpen,
ArrayClose,
ObjectOpen,
ObjectClose,
Colon,
Comma,
OOMjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
Error returnmozilla:< CharT(get)java.lang.StringIndexOutOfBoundsException: Range [68, 64) out of bounds for length 72
enumclassenum
template </java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 class MOZ_STACK_CLASS JSONTokenizer {
public:
using CharPtr = mozilla::RangedPtr<const CharT>;
usinghObjectMemberjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
protected:
CharPtrJSONValue
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 2 const CharPtr begin, end;
ParserT* parser = // or TwoByte input strings, JSONFullParseHandlerAnyChar holds all state and
class java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 51 const
,
current(current),
begin(begin
end(end),
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
(=)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
}
:
JSONTokenizer(CharPtr current, const CharPtr begin, const CharPtr end,
*java.lang.StringIndexOutOfBoundsException: Range [32, 33) out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 62
explicit JSONTokenizer(mozilla
: // In this case indicates t JSONjava.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
current java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 79
other }
JSONTokenizer(const JSONTokenizer<CharT, ParserT>& other)state=java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
PropertyVector;
void getTextPosition(java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
bool consumeTrailingWhitespaces();
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
JSONToken advancePropertyName();
:java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 75
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 35
)
JSONToken ;
public
i
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 6
JSONToken token(JSONToken java.lang.StringIndexOutOfBoundsException: Range [0, 29) out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 39
( =:; return t;
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
JSONToken stringToken(
<java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 30
/
JSONToken Vector<ElementVector>java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
explicitjava.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 54
JSONToken readString(JSONFullParseHandlerAnyChar& );
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
void error(constchar* msg);
protected: delete voidoperator=( & )=;
}
};
// Possible states the parser can be in between values. class JSONParserState { // An array element has just being parsed.
,
// An object property has just been parsed.
FinishObjectMember,
vi);
JSONValue
};
// Character-type-agnostic base class for JSONFullParseHandler. // JSONParser is templatized to work on either Latin1 // or TwoByte input strings, JSONFullParseHandlerAnyChar holds all state and // methods that can be shared between the two encodings. classjava.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 51
public: // State related to the parser's current position. At all points in the
) java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
/ // allocated until the literal is closed, so that the result can be sized inline JS::Value booleanValue(bool value) { return JS::BooleanValue(value); } // caches.
// State for an array that is currently being parsed. This includes all
/java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
::, 20;
// State for an object that is currently being parsed. This includes all // the key/value pairs that have been seen so far. > java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
using java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 63
enumclass ParseType*; // Parsing a string as if by JSON.parse.(< >
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 // Parsing what may or may not be JSON in a string of eval code. // In this case, a failure to parse indicates either syntax that isn't JSON,; // or syntax that has different semantics in eval code than in JSON.
mptForEval
<java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 57
ElementVector** elements); struct < > java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
ElementVector java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 51
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 63 return=:java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 50
}
return parseType == ParseType::AttemptForEval;
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0 returnjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
class JSONFullParseHandler
: state(::FinishArrayElement, (elements){java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8 classjava.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 61
/* Data members */ ;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
bool java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
a:<JS
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
ParseType parseType ( java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 61
AutoSelectGCHeap gcHeap;
: // Unused element and property vectors for previous in progress arrays and
the end // unnecessary freeing and allocation.
Vector<ElementVector* java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 30
public:
)
~JSONFullParseHandlerAnyChar();
// Allow move construction for use with Rooted.
java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 76
JSONFullParseHandlerAnyChar(const JSONFullParseHandlerAnyCharjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 13 void;
*(
JS::Value numberValue() constusingCharPtr :c CharT
(.isNumber()java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 return v
}
JS::Value stringValue() const {
MOZ_ASSERT(v.isString());
using JSONS =typenameBase:JSONStringBuilder
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
JSAtom* E
JS
&(>asAtom;
}
inline JS::Value xplicitJSContext cx cx,java.lang.StringIndexOutOfBoundsException: Range [73, 72) out of bounds for length 79
() {returnJS:) }
(:java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 31
PropertyVector
stack, bool* void operator=(const JSONReviveHandler& other) = delete; boolfinishObjectMember(Vector<, 10> stack,
JS
PropertyVector** properties); inlinebool finishObject(Vector<StackEntry, 10>& stack,
::>,
PropertyVector ;
inlinebool arrayOpen(Vector<StackEntry, 10>& stack,
ElementVectorstd:&>s) { inlinebool return false
JSHJS:>java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
oolfinishArray< java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 56
<ST
*java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
inlinebool errorReturn() const {
= ParseType
}
inlinebool ignoreError return parseType}
}
ifST=:java.lang.StringIndexOutOfBoundsException: Range [54, 52) out of bounds for length 55
void trace(JSTracer* trc
};
template <typename CharT> class
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 19
=java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 43
using java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 71
public: boolsetNullValue& java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
class JSONStringBuilder {
public:
JSStringBuilder buffer;
explicit java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 3
:java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 59
: Base(std
*java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50 voidoperator=const & ) ;
template <JSONStringType ST> inlinebool setStringValue(CharPtrJS::>,
mozilla::Span<const CharT>&&* ; template <ST> inlinebool setStringValue(JSONStringBuilder& JS:JS: vpjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
mozilla:c>&java.lang.StringIndexOutOfBoundsException: Range [66, 67) out of bounds for length 66
booljava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 76 inlinebool return parseRecordStack inline java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
void reportError(constchar* msg, uint32_t line,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
};
CharTjava.lang.StringIndexOutOfBoundsException: Range [25, 26) out of bounds for length 25 classjava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
using CharPtr =
:
public:
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
JSONStringBuilder Jjava.lang.StringIndexOutOfBoundsException: Range [61, 62) out of bounds for length 61
using PropertyVector
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
using ElementVector JSONStringBuilder(FrontendContext*fc){
JSONReviveHandler(JSONReviveHandler&& other ;
: Base(std::move
(td:o)
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 26 void
( -;
template inline(,java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 78
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
JSONSyntaxParseHa(java.lang.StringIndexOutOfBoundsException: Range [55, 53) out of bounds for length 71
} // Property names don't need parse records. if return true;
} return finishPrimitiveParseRecord(this->v, source);
}
template <JSONStringType ST> inline ( builder & { if (!Base::template setStringValue :<const CharT>&& source) {
; return java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 / Property names don't need parse records. if constexpr (ST == java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 16 return true;
} return java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
boolS<CharT& {java.lang.StringIndexOutOfBoundsException: Range [73, 72) out of bounds for length 80 if!:java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 68 return java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
} return finishPrimitiveParseRecord(this->v, source);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
inlinebool){java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 56
JS:java.lang.StringIndexOutOfBoundsException: Range [25, 60) out of bounds for length 54
} inlinebool setNullValue(SourceT&bool*java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 55
JS:java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 63
}
inlinebool objectOpen( &,
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 16 inlinebool finishObjectMember(Vector<StackEntry, 10>& stack,
JS::Handle<JS
PropertyVector** properties); inlinebool finishObject(Vector<StackEntry, 10>& stack,
JS::MutableHandle<JS::Value> vp,
PropertyVector* properties);
inline java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 50
ElementVector** elements);
arrayElement(java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 57
JS: java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 16
ElementVector** elements); inlinebool
JS::>vp
ElementVector* elements
void trace(JSTracer* trc);
inline inline voidjava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 50
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 35
};
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 inlinebool :java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 47
GCVectorjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
};
template <typename CharT
java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 46
Tokeniz java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
using CharPtr = java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 /* Types for templatized parser. */
using ContextT = FrontendContext;
class DummyValue {};
truct {; struct PropertyVector {};
(std:o)
s(c) java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
lderF )}
bool append(char16_t
(const * CharT*end ;java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
;
struct StackEntry {
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
};
public:
FrontendContext)
/* Public API */
a the ./ explicit JSONSyntaxParseHandler(java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 64
( }
JSONSyntaxParseHandler(const java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 operatorconst java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 63
FrontendContext* context() { return fc;java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 0
template *,: inline java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 33
mozilla: java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
}
template <JSONStringType ST>
/
thejava.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 70 return true;
}
inlinebool setNumberValue(double d, mozilla::Span<const CharT>& *java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 76 return true;
} inlinebool setBooleanValue(bool value, mozilla::Span<const CharT>&& source) {
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 16
} inlinebool setNullValue(mozilla::Span< java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 77
*behaviorjava.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 75 inline DummyValue nullValue() { return DummyValue(); }
inlinebool objectOpen( * error handling is RaiseError java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 76
PropertyVector* * |. Jsyntaxt inlinebool objectPropertyName(Vector<StackEntry, 10>& stack, bool* isProtoInEval) {
*isProtoInEval = false; return true;
} inlinebool finishObjectMember(Vector<StackEntry, 10 * represent ||,so the t)
DummyValue& value,
PropertyVector** properties) { return true;
} inlinebool java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0
inlineVector< > java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
ElementVector** elements); inlinebool arrayElement(Vector<StackEntry, 10>& stack, DummyValue& value,
ElementVector** */ return true;
} inlinebool finishArray(Vector<StackEntry, 10>& stack, DummyValue*
ElementVector* elements);
inlinebool errorReturn() const { returnfalse; }
inlinebool ignoreError) { java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
inline <java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 25
using java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 69
} java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 44
using=java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 47
using java.lang.StringIndexOutOfBoundsException: Range [52, 28) out of bounds for length 52
(std)}
using java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 59
public
HandlerT * Parse the JSON java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 70
Tokenizer tokenizer;
// All in progress arrays and objects being parsed, in order from outermost // to innermost.
Vector<typename HandlerT::StackEntry, 10> stack;
public:
*successfully, prescribedjava.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 76
: handler(context), tokenizer(data, this), stack(context) {}
JSONPerHandlerParser(JSONPerHandlerParser&& other) noexcept*(.. java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 67
: handler(std::move(other.handler)),
tokenizer(std::move(other.tokenizer)),
* Otherwisejava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 77
tokenizer.fixupParser(this);
}
~JSONPerHandlerParser();
JSONPerHandlerParser(const JSONPerHandlerParser *java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 75 delete; voidoperator=(const JSONPerHandlerParser<CharT, HandlerT>& other) = delete;
<CharT> class MOZ_STACK_CLASS JSONParser
:*
using Base = JSONPerHandlerParser<CharT, JSONFullParseHandler *Ifjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 73
public:
using ParseType = JSONFullParseHandlerAnyChar::ParseType;
/* Public API */ is*.If willjava.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
/* Create a parser for the provided JSON data. */
JSONParser(JSContext* cx, mozilla::Range<const CharT> data,
ParseType parseType)
:Base(xdata)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
this->handler. *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
/* Allow move construction for use with Rooted. */
& (std:mo) {}
JSONParser(const; void template <typen,>
/* *ParsetheJSONdata{ *successfully,store internaleg.OOM)occursduringparsing,returnfalse. *Otherwise,ifinvalidinputwasspecifed<*>this)>()java.lang.StringIndexOutOfBoundsException: Range [71, 70) out of bounds for length 74 specifiedif * JSONSynt(java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 60 and|.Jsyntax't *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*/
template <typename CharT> class MOZ_STACK_CLASS JSONReviveParser
: JSONPerHandlerParser<CharT, JSONReviveHandler<CharT>> {
using Base = JSONPerHandlerParser<CharT, JSONReviveHandler<CharT>>;
public:
using ParseType = JSONFullParseHandlerAnyChar::ParseType;
/* Public API */
/* Create a parser for the provided JSON data. */
JSONReviveParser(JSContext* cx, mozilla::Range<const CharT> data)
: Base(cx, data) {}
/* Allow move construction for use with Rooted. */
JSONReviveParser(JSONReviveParser&& other) noexcept
: Base(std::move(other)) {}
template <typename CharT> class MOZ_STACK_CLASS JSONSyntaxParser
: JSONPerHandlerParser<CharT, JSONSyntaxParseHandler<CharT>> {
using HandlerT = JSONSyntaxParseHandler<CharT>;
using Base = JSONPerHandlerParser<CharT, HandlerT>;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.