/// <summary> /// Tries to convert string to number, returns null if conversion could not be made /// </summary> public static object Convert(string str, out JSONTokenType type) { ulong inum = 0; double fnum = 0.0; if (strToInt(str, out inum)) { if (inum > UInt32.MaxValue) { type = JSONTokenType.tLongIntLiteral; } else { type = JSONTokenType.tIntLiteral; if (inum<Int32.MaxValue) return (Int32)inum; } return inum; } if (strToFloat(str, out fnum)) { type = JSONTokenType.tDoubleLiteral; return fnum; } type = JSONTokenType.tUnknown; return null; }
/// <summary> /// Tries to convert string to number, returns null if conversion could not be made /// </summary> public static object Convert(string str, out JSONTokenType type) { ulong inum = 0; double fnum = 0.0; if (strToInt(str, out inum)) { if (inum > UInt32.MaxValue) { type = JSONTokenType.tLongIntLiteral; } else { type = JSONTokenType.tIntLiteral; if (inum < Int32.MaxValue) { return((Int32)inum); } } return(inum); } if (strToFloat(str, out fnum)) { type = JSONTokenType.tDoubleLiteral; return(fnum); } type = JSONTokenType.tUnknown; return(null); }//Convert
public void BOF_EOF() { var src = @"a"; var lxr = new JL(new StringSource(src)); var expected = new JSONTokenType[]{JSONTokenType.tBOF, JSONTokenType.tIdentifier, JSONTokenType.tEOF}; Assert.IsTrue( lxr.Select(t => t.Type).SequenceEqual(expected) ); }
public void BOF_EOF() { var src = @"a"; var lxr = new JL(new StringSource(src)); var expected = new JSONTokenType[] { JSONTokenType.tBOF, JSONTokenType.tIdentifier, JSONTokenType.tEOF }; Assert.IsTrue(lxr.Select(t => t.Type).SequenceEqual(expected)); }
public void String2() { var src = @"{""string""}"; var lxr = new JL(new StringSource(src)); var expected = new JSONTokenType[] { JSONTokenType.tBOF, JSONTokenType.tBraceOpen, JSONTokenType.tStringLiteral, JSONTokenType.tBraceClose, JSONTokenType.tEOF }; Assert.IsTrue(lxr.Select(t => t.Type).SequenceEqual(expected)); }
public void Comments2() { var src = @"{ /*'string'}*/ } "; var lxr = new JL(new StringSource(src)); var expected = new JSONTokenType[] { JSONTokenType.tBOF, JSONTokenType.tBraceOpen, JSONTokenType.tComment, JSONTokenType.tBraceClose, JSONTokenType.tEOF }; Assert.IsTrue(lxr.Select(t => t.Type).SequenceEqual(expected)); }
public void BasicTokensWithIdentifierAndDoubleLiteral() { var src = @"{a: 2.2}"; var lxr = new JL(new StringSource(src)); var expected = new JSONTokenType[] { JSONTokenType.tBOF, JSONTokenType.tBraceOpen, JSONTokenType.tIdentifier, JSONTokenType.tColon, JSONTokenType.tDoubleLiteral, JSONTokenType.tBraceClose, JSONTokenType.tEOF }; Assert.IsTrue(lxr.Select(t => t.Type).SequenceEqual(expected)); }
public void BasicTokens2() { var src = @"{a: 2, b: true, c: false, d: null, e: ['a','b','c']}"; var lxr = new JL(new StringSource(src)); var expected = new JSONTokenType[] { JSONTokenType.tBOF, JSONTokenType.tBraceOpen, JSONTokenType.tIdentifier, JSONTokenType.tColon, JSONTokenType.tIntLiteral, JSONTokenType.tComma, JSONTokenType.tIdentifier, JSONTokenType.tColon, JSONTokenType.tTrue, JSONTokenType.tComma, JSONTokenType.tIdentifier, JSONTokenType.tColon, JSONTokenType.tFalse, JSONTokenType.tComma, JSONTokenType.tIdentifier, JSONTokenType.tColon, JSONTokenType.tNull, JSONTokenType.tComma, JSONTokenType.tIdentifier, JSONTokenType.tColon, JSONTokenType.tSqBracketOpen, JSONTokenType.tStringLiteral, JSONTokenType.tComma, JSONTokenType.tStringLiteral, JSONTokenType.tComma, JSONTokenType.tStringLiteral, JSONTokenType.tSqBracketClose, JSONTokenType.tBraceClose, JSONTokenType.tEOF }; //lxr.AnalyzeAll(); //Console.Write(lxr.ToString()); Assert.IsTrue(lxr.Select(t => t.Type).SequenceEqual(expected)); }
public void BasicTokens2() { var src = @"{a: 2, b: true, c: false, d: null, e: ['a','b','c']}"; var lxr = new JL(new StringSource(src)); var expected = new JSONTokenType[] { JSONTokenType.tBOF, JSONTokenType.tBraceOpen, JSONTokenType.tIdentifier, JSONTokenType.tColon, JSONTokenType.tIntLiteral, JSONTokenType.tComma, JSONTokenType.tIdentifier, JSONTokenType.tColon, JSONTokenType.tTrue, JSONTokenType.tComma, JSONTokenType.tIdentifier, JSONTokenType.tColon, JSONTokenType.tFalse, JSONTokenType.tComma, JSONTokenType.tIdentifier, JSONTokenType.tColon, JSONTokenType.tNull, JSONTokenType.tComma, JSONTokenType.tIdentifier, JSONTokenType.tColon, JSONTokenType.tSqBracketOpen, JSONTokenType.tStringLiteral, JSONTokenType.tComma, JSONTokenType.tStringLiteral, JSONTokenType.tComma, JSONTokenType.tStringLiteral, JSONTokenType.tSqBracketClose, JSONTokenType.tBraceClose, JSONTokenType.tEOF}; //lxr.AnalyzeAll(); //Console.Write(lxr.ToString()); Assert.IsTrue( lxr.Select(t => t.Type).SequenceEqual(expected) ); }
public void Comments3() { var src = @"{/* 'string //'}//inner */ } "; var lxr = new JL(new StringSource(src)); var expected = new JSONTokenType[]{JSONTokenType.tBOF, JSONTokenType.tBraceOpen, JSONTokenType.tComment, JSONTokenType.tBraceClose, JSONTokenType.tEOF}; Assert.IsTrue( lxr.Select(t => t.Type).SequenceEqual(expected) ); }
public JSONToken(JSONLexer lexer, JSONTokenType type, SourcePosition startPos, SourcePosition endPos, string text, object value = null) : base(lexer, startPos, endPos, text, value) { Type = type; }
public void BasicTokensWithIdentifierAndDoubleLiteral() { var src = @"{a: 2.2}"; var lxr = new JL(new StringSource(src)); var expected = new JSONTokenType[] { JSONTokenType.tBOF, JSONTokenType.tBraceOpen, JSONTokenType.tIdentifier, JSONTokenType.tColon, JSONTokenType.tDoubleLiteral, JSONTokenType.tBraceClose, JSONTokenType.tEOF}; Assert.IsTrue( lxr.Select(t => t.Type).SequenceEqual(expected) ); }
public JSONToken(JSONTokenType type, string content) { this.type = type; this.content = content; }
/** * Creates a new JSONToken with a specific token type and value. * * @param type The JSONTokenType of the token * @param value The value of the token */ public JSONToken(JSONTokenType token_type, object value) { this.type = token_type; this.value = value; }
public JSONToken(JSONTokenType token_type) { this.type = token_type; this.value = null; }
public JSONToken() { this.type = JSONTokenType.UNKNOWN; this.value = null; }
public void String2() { var src = @"{""string""}"; var lxr = new JL(new StringSource(src)); var expected = new JSONTokenType[]{JSONTokenType.tBOF, JSONTokenType.tBraceOpen, JSONTokenType.tStringLiteral, JSONTokenType.tBraceClose, JSONTokenType.tEOF}; Assert.IsTrue( lxr.Select(t => t.Type).SequenceEqual(expected) ); }
public JSONToken(JSONTokenType kind, string value) { this.Kind = kind; this.Value = value; }