Пример #1
0
def test87(self):
    #debug(grammar.event_expression)
    print_result_as_stmt(self.try_parse_pass("~en"))
    print_result_as_stmt(self.try_parse_pass("posedge A or negedge CLK"))
    print_result_as_stmt(self.try_parse_pass("posedge A , negedge CLK"))
    print_result_as_stmt(self.try_parse_pass("~en or posedge A or negedge CLK"))
    print_result_as_stmt(self.try_parse_pass("~en , (posedge A or negedge CLK)"))  # must be pass! not implemented recursive Binary Exp print
    print_result(self.try_parse_pass("~en ,posedge A or negedge CLK"))
Пример #2
0
def test(self):
    print_result(self.try_parse_pass("if(ABC < 0) ;"))
    print_result(self.try_parse_pass(" if ( ABC < 0) A=B;"))
    print_result(self.try_parse_pass('''
if ( -1 < X )
     A = 0;
else 
     A = 2;
''').asXML())
    print(self.try_parse_pass('''
if ( -1 < X )
     A = 0;
else  if ( 0 < X)
     A = 1;
else
     A = 2;
'''))
    print(self.try_parse_pass('''
if ( -1 < X )
     A = 0;
else  if ( 0 <= X)
     A = 1;
else  if ( 0 < X)
     A = 1;
else  if ( 0 < X)
     A = 1;
else  if ( 0 > X)
     A = 1;
else
     A = 2;
''').asXML())
Пример #3
0
def _test133(self):
    print_result(self.try_parse_pass("-10"))
Пример #4
0
def test112(self):
    print_result(self.try_parse_pass("foo(0,1,2)"))
    print_result(self.try_parse_fail("foo(0,)"))
    print_result(self.try_parse_pass("foo(bar(0))"))
    print_result(self.try_parse_pass("foo(-10)"))
    print_result(self.try_parse_pass("foo( -bar(0) )"))
    print_result(self.try_parse_fail("foo( X+1 )"))
    print_result(self.try_parse_fail("A.b.c( 0)"))
Пример #5
0
def test118(self):
    print_result(self.try_parse_fail("A"))
    print_result(self.try_parse_pass("1"))
    print_result(self.try_parse_pass("(1)"))
    print_result(self.try_parse_pass("func(1)"))
    print_result(self.try_parse_pass("func()"))
    print_result(self.try_parse_pass("1 + 2"))
    print_result(self.try_parse_pass("1 + (2 * 3)"))
    print_result(self.try_parse_pass("(1 + 2) * 3"))
    print_result(self.try_parse_pass("0 ? 1 : 2"))
    print_result(self.try_parse_pass("IsOK() ? 1 : 2"))
    print_result(self.try_parse_pass("-0 ? 1 : 2"))
    #debug(grammar.constant_expression)
    print_result(self.try_parse_pass(" 1 ? ( a() ? a() : a() ): 3"))
    print_result(self.try_parse_pass(" 1 ?  a() ? a() : a() : 3"))
    print_result(self.try_parse_pass("1 + 2 * 3"))
Пример #6
0
def test116(self):
    print_result(self.try_parse_pass(" 0 ? 1 : 2"))
    print_result(self.try_parse_pass(" A ? 1 : 2"))
    print_result(self.try_parse_pass(" A+1 ? (X<0) : (Y==1)"))
    print_result(self.try_parse_pass(" A+1 ? X<0 : Y==1"))
    print_result(self.try_parse_pass(" 0?1:2 ? X<0 : Y==1"))
    print_result(self.try_parse_pass(" 0 ? 1 ? 2 : 3 : 4"))
    print_result(self.try_parse_pass(" 0 ? (1 ? 2 : 3) : 4"))
    print_result(self.try_parse_pass(" 0 ? (a() ? 2 : 3) : 4"))
    print_result(self.try_parse_pass(" 0 ? 1 : (a() ? 2 : 3)"))
    print_result(self.try_parse_pass(" 0 ? 1 : (a() ? b() : 3)"))
    print_result(self.try_parse_pass(" 0 ? (a() ? a() : 3) : 4"))
    print_result(self.try_parse_pass(" 1 ? ( a() ? a() : a() ) : 3"))
Пример #7
0
def test129(self):
    print_result(self.try_parse_pass("1+2+3"))
    print_result(self.try_parse_pass("1:0"))
    print_result(self.try_parse_fail("1+:0"))
Пример #8
0
def test113(self):
    print_result(self.try_parse_pass("foo()"))
    print_result(self.try_parse_pass("foo(0)"))
    print_result(self.try_parse_pass("foo(0,1,2)"))
    print_result(self.try_parse_pass("foo(bar(0))"))
    print_result(self.try_parse_pass("foo(-10)"))
    print_result(self.try_parse_pass("foo( -bar(0) )"))
    print_result(self.try_parse_pass("foo( X+1 )"))
    print_result(self.try_parse_pass("A.b.c( 0, 1, 2)"))
    print_result(self.try_parse_pass("A.b.c( X+1, -Z+1 )"))
    print_result(self.try_parse_pass("A.b.c( foo(0) )"))
Пример #9
0
def test122(self):
    #debug(grammar.expression)
    print_result(self.try_parse_pass("0"))
    print_result(self.try_parse_pass("A+10"))
    print_result(self.try_parse_pass("-X"))
    print_result(self.try_parse_pass("1+2+3"))
    print_result(self.try_parse_pass("-X+1"))
    print_result(self.try_parse_pass("-X+1/A"))
    print_result(self.try_parse_pass("1+2*3"))
    print_result(self.try_parse_pass("1-2*3+4/5"))
    print_result(self.try_parse_pass("1-(2*3+4)/5"))
    print_result(self.try_parse_pass("-X+1*A"))
    print_result(self.try_parse_pass("1?2:3"))
    print_result(self.try_parse_pass("-1?2:3"))
    print_result(self.try_parse_pass("A ? B : C"))
    print_result(self.try_parse_pass("A ? B : C ? D : E"))
    print_result(self.try_parse_pass("A ? B ? C : D : E"))
    print_result(self.try_parse_pass("A ? (B ? C : D) : E"))

    print_result(self.try_parse_pass("0 ? 1 : 2 ? 1 : 2"))
    print_result(self.try_parse_pass("0 ? 0 ? 1 : 2 : 2"))
    print_result(self.try_parse_pass("(0 ? 1 : 2) ? 3 : 4"))

    print_result(self.try_parse_pass("func(1)"))
    print_result(self.try_parse_pass("a + (b * c)"))
    print_result(self.try_parse_pass("(a + b) * c"))
    print_result(self.try_parse_pass("-1 + (b * c)"))
    print_result(self.try_parse_pass("-1 + (-b * ^c)"))
    print_result(self.try_parse_pass(" 1 ? ( a() ? a() : a() ): 3"))
    print_result(self.try_parse_pass(" 1 ?  a() ? a() : a() : 3"))

    print_result(self.try_parse_pass("1 + 2 * 3"))
    print_result(self.try_parse_pass("1 + 2 * 3 / 4 ** 5"))
    print_result(self.try_parse_pass("1 + 2 ? 3 : 4 * 5"))
    print_result(self.try_parse_pass("1 + (2 ? 3 : 4) * 5"))
Пример #10
0
def test109(self):
    print_result(self.try_parse_pass("foo.bar.hoge[5].A[1]"))
    print_result(self.try_parse_pass("foo.bar.hoge[5].A[1][1]"))
    print_result(self.try_parse_pass("foo.bar.hoge[5].A[1][X]"))
    print_result(self.try_parse_pass("foo.bar.hoge[5].A[1][X][y]"))
    print_result(self.try_parse_pass("foo.bar.hoge[5].A[1][X][3:1]"))
    print_result(self.try_parse_pass("A[0][func(1)][foo(2+X)]"))
    print_result(self.try_parse_fail(" 4'b10 "))
    print_result(self.try_parse_pass("{X,Y}"))
    print_result(self.try_parse_pass("{X,Y.foo,Z[1]}"))
    print_result(self.try_parse_pass("{ a, { b, c }, { d, e } }"))
Пример #11
0
def test108(self):
    print_result(self.try_parse_pass("{foo.bar.hoge[5].A[1] }"))
    print_result(self.try_parse_pass("{foo.bar.hoge[5].A[1][1]}"))
    print_result(self.try_parse_pass("{foo.bar.hoge[5].A[1][X]}"))
    print_result(self.try_parse_pass("{foo.bar.hoge[5].A[1][X][y]}"))
    print_result(self.try_parse_pass("{foo.bar.hoge[5].A[1][X][3:1]}"))
    print_result(self.try_parse_fail("{foo.bar.hoge[5].A[1], 4'b10 }"))
    print_result(self.try_parse_fail("{foo.bar.hoge[5].A[1][1], 8'hff }"))
    print_result(self.try_parse_fail("{foo.bar.hoge[5].A[1][X]}, 1"))
    print_result(self.try_parse_fail("{foo.bar.hoge[5].A[1][X][y]}, 10.1"))
    print_result(self.try_parse_pass("{X,Y}"))
    print_result(self.try_parse_pass("{X,Y.foo,Z[1]}"))
    print_result(self.try_parse_pass("{X[1:0],Y.foo,Z[1][2]}"))
    print_result(self.try_parse_pass("{ a, { b, c }, { d, e } }"))
    print_result(self.try_parse_pass("{ { { { { { { X } } } } } } }"))
    print_result(self.try_parse_fail("{1}"))
Пример #12
0
def test103(self):
    print_result(self.try_parse_pass("{1,2,3}"))
    print_result(self.try_parse_pass("{1,1}"))
    print_result(self.try_parse_pass("{1+2,3}"))
    print_result(self.try_parse_pass("{1+2,3,4}"))
    print_result(self.try_parse_fail("{1,1,}")) 
    print_result(self.try_parse_pass("{ {1}, 1}")) 
    print_result(self.try_parse_pass("{ {1,2}, {3,4,5}, {6,7, {8,9}} }")) 
    print_result(self.try_parse_fail("{ A+B, X + 2, 3'hff }"))
Пример #13
0
def _test131(self):
    print_result(self.try_parse_fail("{1,2,}"))
Пример #14
0
def test135(self):
    print_result(self.try_parse_pass("A"))
    print_result(self.try_parse_pass("A[1:0]"))
    print_result(self.try_parse_pass("A[1]"))
    print_result(self.try_parse_pass("A[1][2]"))
    print_result(self.try_parse_pass("A[1][2][X]"))
    print_result(self.try_parse_pass("A[foo()][0][5:3]"))
    print_result(self.try_parse_pass("hoge.foo[1:0]"))
    print_result(self.try_parse_pass("hoge.foo[0][1][2][1:0]"))
    print_result(self.try_parse_fail("{1}"))
    print_result(self.try_parse_pass("{A,B}"))
    print_result(self.try_parse_pass("{{A,B},X,f}"))
Пример #15
0
def test134(self):
    # debug(grammar.constant_expression)
    # debug(grammar.constant_range_expression)
    print_result(self.try_parse_pass("A"))
    print_result(self.try_parse_pass("A[1:0]"))
    print_result(self.try_parse_pass("A[1]"))
    print_result(self.try_parse_pass("A[1][2]"))
    print_result(self.try_parse_fail("A[1][2][X]"))
    print_result(self.try_parse_pass("A[foo()][0][5:3]"))
    print_result(self.try_parse_pass("hoge.foo[1:0]"))
    print_result(self.try_parse_pass("hoge.foo[0][1][2][1:0]"))
    print_result(self.try_parse_fail("{1}"))
    print_result(self.try_parse_pass("{A,B}"))
    print_result(self.try_parse_pass("{{A,B},X,f}"))
Пример #16
0
def test133(self):
    print_result(self.try_parse_fail("-10"))
    print_result(self.try_parse_pass("foo(1)"))
    print_result(self.try_parse_pass("$display(a,b,c)"))
    print_result(self.try_parse_pass("foo.bar.hoge[5].A[1]"))
    print_result(self.try_parse_pass("foo.bar.hoge[5].A[1][1:0]"))
    print_result(self.try_parse_pass("foo.bar.hoge[5].A[1][X]"))
    print_result(self.try_parse_pass("foo.bar.hoge[5].A[1][X][y]"))
    print_result(self.try_parse_pass("foo.bar.hoge[5].A[1][X][3:1]"))
    print_result(self.try_parse_pass("{1,2,3}"))
    print_result(self.try_parse_pass("(10)"))
Пример #17
0
def test95(self):
    print_result(self.try_parse_pass("A: a=1;"))
    print_result(self.try_parse_pass("A,B: a=1;"))
    print_result(self.try_parse_pass("default: a=1;"))
Пример #18
0
def test141(self):
    print_result(self.try_parse_pass("23.5"))
Пример #19
0
def test124(self):
    print_result(self.try_parse_pass("0"))
    print_result(self.try_parse_pass("A+10"))
    print_result(self.try_parse_pass("-X"))
    print_result(self.try_parse_pass("1+2+3"))
    print_result(self.try_parse_pass("-X+1"))
    print_result(self.try_parse_pass("-X+1+A"))
    print_result(self.try_parse_pass("-X+1*A"))
    print_result(self.try_parse_pass("1?2:3"))
    print_result(self.try_parse_pass("-1?2:3"))
    print_result(self.try_parse_pass("A ? B : C"))
    print_result(self.try_parse_pass("A ? B : A ? B : C"))
    print_result(self.try_parse_pass("0 ? 1 : 2 ? 1 : 2"))
    print_result(self.try_parse_pass("0 ? 0 ? 1 : 2 : 2"))
    print_result(self.try_parse_pass("(0 ? 1 : 2) ? 3 : 4"))
    print_result(self.try_parse_pass("func(1)"))
Пример #20
0
def test142(self):
    print_result(self.try_parse_pass("e"))
Пример #21
0
def test128(self):
    print_result(self.try_parse_fail("1:0"))
    print_result(self.try_parse_pass("20"))
Пример #22
0
def test150(self):
    print_result(self.try_parse_pass("1"))
    print_result(self.try_parse_pass("123"))
Пример #23
0
def test114(self):
    print_result(self.try_parse_pass("$foo(0,1,2)"))
    print_result(self.try_parse_pass("$foo(bar(0))"))
    print_result(self.try_parse_pass("$foo(-10)"))
    print_result(self.try_parse_pass("$foo( -bar(0) )"))
    print_result(self.try_parse_pass("$foo( X+1 )"))
    print_result(self.try_parse_fail("$A.b.c( X+1, -Z+1 )"))
Пример #24
0
def test(self):
    print_result(self.try_parse_pass("23.5"))
    print_result(self.try_parse_pass("1.0e+1"))
    print_result(self.try_parse_pass("0.0E-30"))
    print_result(self.try_parse_pass("0.0"))
    print_result(self.try_parse_pass("123"))
    print_result(self.try_parse_pass("01"))
    print_result(self.try_parse_pass("'d0"))
    print_result(self.try_parse_pass("5'd0"))
Пример #25
0
def test117(self):
    print_result(self.try_parse_pass("1"))
    print_result(self.try_parse_pass("1+2"))
    print_result(self.try_parse_fail("X+2"))
    print_result(self.try_parse_pass("0?1:2"))
Пример #26
0
def test82(self):
    print_result(self.try_parse_pass("#10"))
    print_result(self.try_parse_pass("#X+1"))
    print_result(self.try_parse_pass("#(X+1)"))
    print_result(self.try_parse_pass("#X +1"))
Пример #27
0
def test119(self):
    print_result(self.try_parse_fail("A"))
    print_result(self.try_parse_pass("1"))
    print_result(self.try_parse_pass("(1)"))
    print_result(self.try_parse_pass("func(1)"))
    print_result(self.try_parse_pass("func()"))
    print_result(self.try_parse_pass("1 + 2"))
    print_result(self.try_parse_pass("1 + 2 * 3"))
    print_result(self.try_parse_pass("1 + (2 * 3)"))
    print_result(self.try_parse_pass("(1 + 2) * 3"))
    print_result(self.try_parse_pass("0 ? 1 : 2"))
    print_result(self.try_parse_pass("IsOK() ? 1 : 2"))
    print_result(self.try_parse_pass("-0 ? 1 : 2"))
Пример #28
0
def _test(self):
    #debug(grammar.delay_value)
    print_result(self.try_parse_pass("10"))
    print_result(self.try_parse_pass("X+2"))
Пример #29
0
def test120(self):
    print_result(self.try_parse_pass("1:0"))
    print_result(self.try_parse_pass("1:0+10"))
    print_result(self.try_parse_fail("1:X"))
    print_result(self.try_parse_pass("func(0):{1,2}"))
Пример #30
0
def test131(self):
    print_result(self.try_parse_fail("{1,2,}"))
    print_result(self.try_parse_pass("1"))
    print_result(self.try_parse_pass("{1,2,3}"))
    print_result(self.try_parse_fail("{1,2,}"))
    print_result(self.try_parse_pass("(1)"))
    print_result(self.try_parse_pass("({1,2,3})"))
    print_result(self.try_parse_pass("func(0,1,2)"))
    print_result(self.try_parse_pass("func(0?1:2)"))
    print_result(self.try_parse_pass("{{{{1}}}}"))
    print_result(self.try_parse_fail("A"))