예제 #1
0
 def test_run_23(self):
     try:
         result = runLine(0, '"abc" < 1;')
     except RuntimeException as err:
         assert True
     else:
         assert False
예제 #2
0
파일: pylox_main.py 프로젝트: hculpan/pylox
def runPrompt():
    print("PyLox REPL environment")

    while True:
        clearError()
        line = input("> ").strip()

        if line == "quit" or line == "bye" or line == "exit":
            print("PyLox session terminated")
            break
        else:
            try:
                result = runLine(0, line)
                if result is not None:
                    printResult(result[0], result[1])
            except RuntimeException as err:
                if err.expr.token[3] > 0:
                    print("Runtime error: {0}".format(err.message))
                else:
                    print("Runtime error: {0} [Line {1}]".format(
                        err.message, err.expr.token[3]))
            except ParseException as err:
                print("Parse error: {0} [Line {1}]".format(
                    err.message, err.lineNo))
예제 #3
0
 def test_run_13(self):
     result = runLine(0, "3 + 8 / 2;")
     assert result[0] == 7
     assert result[1] == DataType.DOUBLE
예제 #4
0
 def test_run_11(self):
     result = runLine(0, "(3 + 8) * 2;")
     assert result[0] == 22
     assert result[1] == DataType.INTEGER
예제 #5
0
 def test_run_10(self):
     result = runLine(0, "3 + 8 * 2;")
     assert result[0] == 19
     assert result[1] == DataType.INTEGER
예제 #6
0
 def test_run_19(self):
     result = runLine(0, "false < true;")
     assert result[0] is True
     assert result[1] == DataType.BOOLEAN
예제 #7
0
 def test_run_1(self):
     result = runLine(0, "1;")
     assert result[0] == 1
     assert result[1] == DataType.INTEGER
예제 #8
0
 def test_run_16(self):
     result = runLine(0, "1 < 2;")
     assert result[0] is True
     assert result[1] == DataType.BOOLEAN
예제 #9
0
 def test_run_5(self):
     result = runLine(0, "-4.0;")
     assert result[0] == -4
     assert result[1] == DataType.DOUBLE
예제 #10
0
 def test_run_4(self):
     result = runLine(0, "(4);")
     assert result[0] == 4
     assert result[1] == DataType.INTEGER
예제 #11
0
 def test_run_3(self):
     result = runLine(0, '"This is true";')
     assert result[0] == 'This is true'
     assert result[1] == DataType.STRING
예제 #12
0
 def test_run_2(self):
     result = runLine(0, "true;")
     assert result[0] == True
     assert result[1] == DataType.BOOLEAN
예제 #13
0
 def test_run_26(self):
     result = runLine(0, '-(-2);')
     assert result[0] == 2
     assert result[1] == DataType.INTEGER
예제 #14
0
 def test_run_25(self):
     result = runLine(0, '"bca" != "abc";')
     assert result[0] is True
     assert result[1] == DataType.BOOLEAN
예제 #15
0
 def test_run_24(self):
     result = runLine(0, '"bca" == "abc";')
     assert result[0] is False
     assert result[1] == DataType.BOOLEAN
예제 #16
0
 def test_run_14(self):
     result = runLine(0, "(3 + 8) / -2;")
     assert result[0] == -5.5
     assert result[1] == DataType.DOUBLE
예제 #17
0
 def test_run_15(self):
     result = runLine(0, '"Hel" + "lo";')
     assert result[0] == "Hello"
     assert result[1] == DataType.STRING
예제 #18
0
 def test_run_6(self):
     result = runLine(0, "1 * 2;")
     assert result[0] == 2
     assert result[1] == DataType.INTEGER
예제 #19
0
 def test_run_17(self):
     result = runLine(0, "10 * 2 < 6 * 5;")
     assert result[0] is True
     assert result[1] == DataType.BOOLEAN
예제 #20
0
 def test_run_7(self):
     result = runLine(0, "3 * 2.0;")
     assert result[0] == 6
     assert result[1] == DataType.DOUBLE
예제 #21
0
 def test_run_18(self):
     result = runLine(0, "10 * 2 > 6 * 5;")
     assert result[0] is False
     assert result[1] == DataType.BOOLEAN
예제 #22
0
 def test_run_8(self):
     result = runLine(0, "3 * 8 / 2;")
     assert result[0] == 12
     assert result[1] == DataType.DOUBLE
예제 #23
0
 def test_run_9(self):
     result = runLine(0, "3 + 8;")
     assert result[0] == 11
     assert result[1] == DataType.INTEGER
예제 #24
0
 def test_run_20(self):
     result = runLine(0, "true < false;")
     assert result[0] is False
     assert result[1] == DataType.BOOLEAN