Beispiel #1
0
        /// <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;
        }
Beispiel #2
0
        /// <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
Beispiel #3
0
        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) );
        }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        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));
        }
Beispiel #8
0
        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));
        }
Beispiel #9
0
        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) );
        }
Beispiel #10
0
        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) );
        }
Beispiel #11
0
 public JSONToken(JSONLexer lexer, JSONTokenType type, SourcePosition startPos, SourcePosition endPos, string text, object value = null) :
     base(lexer, startPos, endPos, text, value)
 {
     Type = type;
 }
Beispiel #12
0
        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) );
        }
Beispiel #13
0
 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;
 }
Beispiel #16
0
 public JSONToken(JSONLexer lexer, JSONTokenType type, SourcePosition startPos, SourcePosition endPos, string text, object value = null)
     : base(lexer, startPos, endPos, text, value)
 {
     Type = type;
 }
 public JSONToken()
 {
     this.type  = JSONTokenType.UNKNOWN;
     this.value = null;
 }
Beispiel #18
0
        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) );
        }
Beispiel #19
0
 public JSONToken(JSONTokenType kind, string value)
 {
     this.Kind  = kind;
     this.Value = value;
 }