예제 #1
0
파일: test_file.py 프로젝트: supsub/LOUDXD
def test_test():
    source = """a jest równe 2.
                Zwiększ a o 5.
                Wypisz na ekranie a.
                b jest równe 4+a-(2-a).
                Zmniejsz b o b+1.
                c jest równe "jestem sobie zmienna c".
                Wypisz na ekranie b+b.
                Wypisz na ekranie "ELO :P".
                Wypisz na ekranie "Wpisałem w puste miejsca  _, _, _!", w puste miejsce wpisz "siema",1,(2-5).
                Wypisz na ekranie "Wpisałem w puste miejsce _, _!", w puste miejsce wpisz "elo", "siemano".
                Wypisz na ekranie "zmienna a = _, zmienna b = _, zmienna c = _!", w puste miejsce wpisz a,b,c.
                Wypisz na ekranie b jest wieksze od b.
                Wypisz na ekranie b jest mniejsze od b.
                Wypisz na ekranie b równa się b.
                Wypisz na ekranie b jest różne od b.
                Jeżeli b jest mniejsze od b to wypisz na ekranie "b<b". Tyle.
                Jeżeli a jest mniejsze od b to wypisz na ekranie "a<b". Tyle.
                Jeżeli b jest mniejsze od a to wypisz na ekranie "b<a". Tyle.
                """

    lexer = Lexer().get_lexer()
    tokens = lexer.lex(source)

    pg = Parser()
    pg.parse()
    parser = pg.get_parser()
    context = {}
    parser.parse(tokens).eval(context)
예제 #2
0
파일: test_file.py 프로젝트: supsub/LOUDXD
def test_empty():
    source = ""

    lexer = Lexer().get_lexer()
    tokens = lexer.lex(source)

    pg = Parser()
    pg.parse()
    parser = pg.get_parser()
    context = {}
    parser.parse(tokens).eval(context)
예제 #3
0
파일: test_file.py 프로젝트: supsub/LOUDXD
def test_if_else():
    source = """
                Jeżeli 2 jest wieksze od 3 to wypisz na ekranie "jestem w ifie".
                W przeciwnym razie wypisz na ekranie "jestem w  elsie".
                Tyle.
                Wypisz na ekranie "ifelse działa".
                """

    lexer = Lexer().get_lexer()
    tokens = lexer.lex(source)

    pg = Parser()
    pg.parse()
    parser = pg.get_parser()
    context = {}
    parser.parse(tokens).eval(context)
예제 #4
0
파일: test_file.py 프로젝트: supsub/LOUDXD
def test_advanced_if():
    source = """
                Jeżeli 5 jest wieksze od 3 to 
                    jeżeli 5 jest wieksze od 4 to 
                    wypisz na ekranie "jestem w zagnieżdżonym ifie" 
                    oraz wypisz na ekranie "5 jest większe od 3 i 4". 
                    Tyle. 
                Tyle.
                Wypisz na ekranie "zagnieżdzony if działa".
                """

    lexer = Lexer().get_lexer()
    tokens = lexer.lex(source)

    pg = Parser()
    pg.parse()
    parser = pg.get_parser()
    context = {}
    parser.parse(tokens).eval(context)
예제 #5
0
파일: test_file.py 프로젝트: supsub/LOUDXD
def test_if():
    source = """
                b jest równe 5.
                Wypisz na ekranie b.
                Jeżeli b równa się b to wypisz na ekranie "jestem w body" 
                oraz wypisz na ekranie "dalej w body"
                oraz wypisz na ekranie "chyba bangla". 
                Tyle.
                Wypisz na ekranie "już poza body".
                """

    lexer = Lexer().get_lexer()
    tokens = lexer.lex(source)

    pg = Parser()
    pg.parse()
    parser = pg.get_parser()
    context = {}
    parser.parse(tokens).eval(context)
예제 #6
0
from src.lexer import Lexer
from src.parser import Parser


class ParserState(object):
    def __init__(self, filename):
        self.filename = filename


text_input = ""
with open("input.txt", "r") as f:
    line = f.readline()
    while line:
        text_input += line
        line = f.readline()

lexer = Lexer().get_lexer()
tokens = lexer.lex(text_input)

pg = Parser()
pg.parse()
parser = pg.get_parser()
context = {}
parser.parse(tokens).eval(context)

#print("\nContext: ",context)