Example #1
0
        public void TestOperatorOrDelimiter_FloorDiv()
        {
            var lex = new PythonCoreTokenizer("//".ToCharArray());

            Assert.Equal(TokenKind.PyFloorDiv, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(2ul, lex.CurSymbol.EndPos);
        }
Example #2
0
        public void TestResrevedKeyword_continue()
        {
            var lex = new PythonCoreTokenizer("continue ".ToCharArray());

            Assert.Equal(TokenKind.PyContinue, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(8ul, lex.CurSymbol.EndPos);
        }
Example #3
0
        public void TestLineContinuation_1()
        {
            var lex = new PythonCoreTokenizer("\\\r\nFalse".ToCharArray());

            Assert.Equal(TokenKind.PyFalse, lex.CurSymbol.Kind);
            Assert.Equal(3ul, lex.CurSymbol.StartPos);
            Assert.Equal(8ul, lex.CurSymbol.EndPos);
        }
Example #4
0
        public void TestResrevedKeyword_class()
        {
            var lex = new PythonCoreTokenizer("class".ToCharArray());

            Assert.Equal(TokenKind.PyClass, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(5ul, lex.CurSymbol.EndPos);
        }
Example #5
0
        public void TestOperatorOrDelimiter_ShiftLeft()
        {
            var lex = new PythonCoreTokenizer("<<".ToCharArray());

            Assert.Equal(TokenKind.PyShiftLeft, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(2ul, lex.CurSymbol.EndPos);
        }
Example #6
0
        public void TestOperatorOrDelimiter_LeftCurly()
        {
            var lex = new PythonCoreTokenizer("{".ToCharArray());

            Assert.Equal(TokenKind.PyLeftCurly, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(1ul, lex.CurSymbol.EndPos);
        }
Example #7
0
        public void TestOperatorOrDelimiter_BitSemiColon()
        {
            var lex = new PythonCoreTokenizer(";".ToCharArray());

            Assert.Equal(TokenKind.PySemiColon, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(1ul, lex.CurSymbol.EndPos);
        }
Example #8
0
        public void TestOperatorOrDelimiter_BitElipsis()
        {
            var lex = new PythonCoreTokenizer("...".ToCharArray());

            Assert.Equal(TokenKind.PyElipsis, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(3ul, lex.CurSymbol.EndPos);
        }
Example #9
0
        public void TestOperatorOrDelimiter_ShiftRightAssign()
        {
            var lex = new PythonCoreTokenizer(">>=".ToCharArray());

            Assert.Equal(TokenKind.PyShiftRightAssign, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(3ul, lex.CurSymbol.EndPos);
        }
Example #10
0
        public void TestOperatorOrDelimiter_BitXorAssign()
        {
            var lex = new PythonCoreTokenizer("^=".ToCharArray());

            Assert.Equal(TokenKind.PyBitXorAssign, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(2ul, lex.CurSymbol.EndPos);
        }
Example #11
0
        public void TestResrevedKeyword_with()
        {
            var lex = new PythonCoreTokenizer("with".ToCharArray());

            Assert.Equal(TokenKind.PyWith, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(4ul, lex.CurSymbol.EndPos);
        }
Example #12
0
        public void TestEndOfFile()
        {
            var lex = new PythonCoreTokenizer("".ToCharArray());

            Assert.Equal(TokenKind.EndOfFile, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(0ul, lex.CurSymbol.EndPos);
        }
Example #13
0
        public void TestResrevedKeyword_and()
        {
            var lex = new PythonCoreTokenizer("and".ToCharArray());

            Assert.Equal(TokenKind.PyAnd, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(3ul, lex.CurSymbol.EndPos);
        }
Example #14
0
        public void TestResrevedKeyword_return()
        {
            var lex = new PythonCoreTokenizer("return".ToCharArray());

            Assert.Equal(TokenKind.PyReturn, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(6ul, lex.CurSymbol.EndPos);
        }
Example #15
0
        public void TestResrevedKeyword_nonlocal()
        {
            var lex = new PythonCoreTokenizer("nonlocal".ToCharArray());

            Assert.Equal(TokenKind.PyNonLocal, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(8ul, lex.CurSymbol.EndPos);
        }
Example #16
0
        public void TestResrevedKeyword_finally()
        {
            var lex = new PythonCoreTokenizer("finally".ToCharArray());

            Assert.Equal(TokenKind.PyFinally, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(7ul, lex.CurSymbol.EndPos);
        }
Example #17
0
        public void TestOperatorOrDelimiter_RightCurly()
        {
            var lex = new PythonCoreTokenizer("{}".ToCharArray());

            lex.Advance();
            Assert.Equal(TokenKind.PyRightCurly, lex.CurSymbol.Kind);
            Assert.Equal(1ul, lex.CurSymbol.StartPos);
            Assert.Equal(2ul, lex.CurSymbol.EndPos);
        }
Example #18
0
        public void TestLiteralNumber_11()
        {
            var lex = new PythonCoreTokenizer("0o7114".ToCharArray());

            Assert.Equal(TokenKind.Number, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(6ul, lex.CurSymbol.EndPos);
            Assert.Equal("0o7114", (lex.CurSymbol as NumberToken).Text);
        }
Example #19
0
        public void TestLiteralName_3()
        {
            var lex = new PythonCoreTokenizer("_x34a".ToCharArray());

            Assert.Equal(TokenKind.Name, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(5ul, lex.CurSymbol.EndPos);
            Assert.Equal("_x34a", (lex.CurSymbol as NameToken).Text);
        }
Example #20
0
        public void TestLiteralString_8()
        {
            var lex = new PythonCoreTokenizer("\"Hello, World!\"".ToCharArray());

            Assert.Equal(TokenKind.String, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(15ul, lex.CurSymbol.EndPos);
            Assert.Equal("\"Hello, World!\"", (lex.CurSymbol as StringToken).Text);
        }
Example #21
0
        public void TestLiteralNumber_26()
        {
            var lex = new PythonCoreTokenizer("1_2_3_4.4_5_6".ToCharArray());

            Assert.Equal(TokenKind.Number, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(13ul, lex.CurSymbol.EndPos);
            Assert.Equal("1_2_3_4.4_5_6", (lex.CurSymbol as NumberToken).Text);
        }
Example #22
0
        public void TestTypeComment()
        {
            var lex = new PythonCoreTokenizer("# type: (int) -> int\r\n".ToCharArray());

            Assert.Equal(TokenKind.TypeComment, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(20ul, lex.CurSymbol.EndPos);
            Assert.Equal("# type: (int) -> int", (lex.CurSymbol as TypeCommentToken).Text);
        }
Example #23
0
        public static Node ParseEvalInput(string SourceCode, UInt32 TabSize = 8u)
        {
            var lex = new PythonCoreTokenizer(SourceCode.ToCharArray());

            lex.TabSize = TabSize;
            var parser = new PythonCoreParser(lex);

            return(parser.ParseEvalInput());
        }
Example #24
0
        public void TestLiteralString_3()
        {
            var lex = new PythonCoreTokenizer("''''''".ToCharArray());

            Assert.Equal(TokenKind.String, lex.CurSymbol.Kind);
            Assert.Equal(0ul, lex.CurSymbol.StartPos);
            Assert.Equal(6ul, lex.CurSymbol.EndPos);
            Assert.Equal("''''''", (lex.CurSymbol as StringToken).Text);
        }