📦 NEW: ptml中增加对not节点的支持
This commit is contained in:
parent
78cd648a62
commit
0f2e1d0ea2
|
@ -4,7 +4,7 @@ root : tree+ EOF;
|
|||
|
||||
tree : internal_node '{' (action_sign|tree)* '}' ;
|
||||
internal_node : 'sequence' | 'selector' | 'parallel' Integer ;
|
||||
action_sign : ('act'|'cond') String '(' action_parm? ')';
|
||||
action_sign : 'not'? ('act'|'cond') String '(' action_parm? ')';
|
||||
action_parm : (Integer|Float|boolean|String) (',' (Integer|Float|boolean|String))* ;
|
||||
// var_decls : var_type Names ;
|
||||
// var_type : 'int' | 'float' | 'bool' | 'string' ;
|
||||
|
|
|
@ -5,6 +5,7 @@ null
|
|||
'sequence'
|
||||
'selector'
|
||||
'parallel'
|
||||
'not'
|
||||
'act'
|
||||
'cond'
|
||||
'('
|
||||
|
@ -32,6 +33,7 @@ null
|
|||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
String
|
||||
Integer
|
||||
Float
|
||||
|
@ -48,4 +50,4 @@ boolean
|
|||
|
||||
|
||||
atn:
|
||||
[4, 1, 17, 65, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 1, 0, 4, 0, 14, 8, 0, 11, 0, 12, 0, 15, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 24, 8, 1, 10, 1, 12, 1, 27, 9, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 35, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 41, 8, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 49, 8, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 56, 8, 4, 5, 4, 58, 8, 4, 10, 4, 12, 4, 61, 9, 4, 1, 5, 1, 5, 1, 5, 0, 0, 6, 0, 2, 4, 6, 8, 10, 0, 2, 1, 0, 6, 7, 1, 0, 11, 12, 71, 0, 13, 1, 0, 0, 0, 2, 19, 1, 0, 0, 0, 4, 34, 1, 0, 0, 0, 6, 36, 1, 0, 0, 0, 8, 48, 1, 0, 0, 0, 10, 62, 1, 0, 0, 0, 12, 14, 3, 2, 1, 0, 13, 12, 1, 0, 0, 0, 14, 15, 1, 0, 0, 0, 15, 13, 1, 0, 0, 0, 15, 16, 1, 0, 0, 0, 16, 17, 1, 0, 0, 0, 17, 18, 5, 0, 0, 1, 18, 1, 1, 0, 0, 0, 19, 20, 3, 4, 2, 0, 20, 25, 5, 1, 0, 0, 21, 24, 3, 6, 3, 0, 22, 24, 3, 2, 1, 0, 23, 21, 1, 0, 0, 0, 23, 22, 1, 0, 0, 0, 24, 27, 1, 0, 0, 0, 25, 23, 1, 0, 0, 0, 25, 26, 1, 0, 0, 0, 26, 28, 1, 0, 0, 0, 27, 25, 1, 0, 0, 0, 28, 29, 5, 2, 0, 0, 29, 3, 1, 0, 0, 0, 30, 35, 5, 3, 0, 0, 31, 35, 5, 4, 0, 0, 32, 33, 5, 5, 0, 0, 33, 35, 5, 14, 0, 0, 34, 30, 1, 0, 0, 0, 34, 31, 1, 0, 0, 0, 34, 32, 1, 0, 0, 0, 35, 5, 1, 0, 0, 0, 36, 37, 7, 0, 0, 0, 37, 38, 5, 13, 0, 0, 38, 40, 5, 8, 0, 0, 39, 41, 3, 8, 4, 0, 40, 39, 1, 0, 0, 0, 40, 41, 1, 0, 0, 0, 41, 42, 1, 0, 0, 0, 42, 43, 5, 9, 0, 0, 43, 7, 1, 0, 0, 0, 44, 49, 5, 14, 0, 0, 45, 49, 5, 15, 0, 0, 46, 49, 3, 10, 5, 0, 47, 49, 5, 13, 0, 0, 48, 44, 1, 0, 0, 0, 48, 45, 1, 0, 0, 0, 48, 46, 1, 0, 0, 0, 48, 47, 1, 0, 0, 0, 49, 59, 1, 0, 0, 0, 50, 55, 5, 10, 0, 0, 51, 56, 5, 14, 0, 0, 52, 56, 5, 15, 0, 0, 53, 56, 3, 10, 5, 0, 54, 56, 5, 13, 0, 0, 55, 51, 1, 0, 0, 0, 55, 52, 1, 0, 0, 0, 55, 53, 1, 0, 0, 0, 55, 54, 1, 0, 0, 0, 56, 58, 1, 0, 0, 0, 57, 50, 1, 0, 0, 0, 58, 61, 1, 0, 0, 0, 59, 57, 1, 0, 0, 0, 59, 60, 1, 0, 0, 0, 60, 9, 1, 0, 0, 0, 61, 59, 1, 0, 0, 0, 62, 63, 7, 1, 0, 0, 63, 11, 1, 0, 0, 0, 8, 15, 23, 25, 34, 40, 48, 55, 59]
|
||||
[4, 1, 18, 68, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 1, 0, 4, 0, 14, 8, 0, 11, 0, 12, 0, 15, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 24, 8, 1, 10, 1, 12, 1, 27, 9, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 35, 8, 2, 1, 3, 3, 3, 38, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 44, 8, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 52, 8, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 59, 8, 4, 5, 4, 61, 8, 4, 10, 4, 12, 4, 64, 9, 4, 1, 5, 1, 5, 1, 5, 0, 0, 6, 0, 2, 4, 6, 8, 10, 0, 2, 1, 0, 7, 8, 1, 0, 12, 13, 75, 0, 13, 1, 0, 0, 0, 2, 19, 1, 0, 0, 0, 4, 34, 1, 0, 0, 0, 6, 37, 1, 0, 0, 0, 8, 51, 1, 0, 0, 0, 10, 65, 1, 0, 0, 0, 12, 14, 3, 2, 1, 0, 13, 12, 1, 0, 0, 0, 14, 15, 1, 0, 0, 0, 15, 13, 1, 0, 0, 0, 15, 16, 1, 0, 0, 0, 16, 17, 1, 0, 0, 0, 17, 18, 5, 0, 0, 1, 18, 1, 1, 0, 0, 0, 19, 20, 3, 4, 2, 0, 20, 25, 5, 1, 0, 0, 21, 24, 3, 6, 3, 0, 22, 24, 3, 2, 1, 0, 23, 21, 1, 0, 0, 0, 23, 22, 1, 0, 0, 0, 24, 27, 1, 0, 0, 0, 25, 23, 1, 0, 0, 0, 25, 26, 1, 0, 0, 0, 26, 28, 1, 0, 0, 0, 27, 25, 1, 0, 0, 0, 28, 29, 5, 2, 0, 0, 29, 3, 1, 0, 0, 0, 30, 35, 5, 3, 0, 0, 31, 35, 5, 4, 0, 0, 32, 33, 5, 5, 0, 0, 33, 35, 5, 15, 0, 0, 34, 30, 1, 0, 0, 0, 34, 31, 1, 0, 0, 0, 34, 32, 1, 0, 0, 0, 35, 5, 1, 0, 0, 0, 36, 38, 5, 6, 0, 0, 37, 36, 1, 0, 0, 0, 37, 38, 1, 0, 0, 0, 38, 39, 1, 0, 0, 0, 39, 40, 7, 0, 0, 0, 40, 41, 5, 14, 0, 0, 41, 43, 5, 9, 0, 0, 42, 44, 3, 8, 4, 0, 43, 42, 1, 0, 0, 0, 43, 44, 1, 0, 0, 0, 44, 45, 1, 0, 0, 0, 45, 46, 5, 10, 0, 0, 46, 7, 1, 0, 0, 0, 47, 52, 5, 15, 0, 0, 48, 52, 5, 16, 0, 0, 49, 52, 3, 10, 5, 0, 50, 52, 5, 14, 0, 0, 51, 47, 1, 0, 0, 0, 51, 48, 1, 0, 0, 0, 51, 49, 1, 0, 0, 0, 51, 50, 1, 0, 0, 0, 52, 62, 1, 0, 0, 0, 53, 58, 5, 11, 0, 0, 54, 59, 5, 15, 0, 0, 55, 59, 5, 16, 0, 0, 56, 59, 3, 10, 5, 0, 57, 59, 5, 14, 0, 0, 58, 54, 1, 0, 0, 0, 58, 55, 1, 0, 0, 0, 58, 56, 1, 0, 0, 0, 58, 57, 1, 0, 0, 0, 59, 61, 1, 0, 0, 0, 60, 53, 1, 0, 0, 0, 61, 64, 1, 0, 0, 0, 62, 60, 1, 0, 0, 0, 62, 63, 1, 0, 0, 0, 63, 9, 1, 0, 0, 0, 64, 62, 1, 0, 0, 0, 65, 66, 7, 1, 0, 0, 66, 11, 1, 0, 0, 0, 9, 15, 23, 25, 34, 37, 43, 51, 58, 62]
|
|
@ -10,20 +10,22 @@ T__8=9
|
|||
T__9=10
|
||||
T__10=11
|
||||
T__11=12
|
||||
String=13
|
||||
Integer=14
|
||||
Float=15
|
||||
LINE_COMMENT=16
|
||||
WS=17
|
||||
T__12=13
|
||||
String=14
|
||||
Integer=15
|
||||
Float=16
|
||||
LINE_COMMENT=17
|
||||
WS=18
|
||||
'{'=1
|
||||
'}'=2
|
||||
'sequence'=3
|
||||
'selector'=4
|
||||
'parallel'=5
|
||||
'act'=6
|
||||
'cond'=7
|
||||
'('=8
|
||||
')'=9
|
||||
','=10
|
||||
'True'=11
|
||||
'False'=12
|
||||
'not'=6
|
||||
'act'=7
|
||||
'cond'=8
|
||||
'('=9
|
||||
')'=10
|
||||
','=11
|
||||
'True'=12
|
||||
'False'=13
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -10,61 +10,64 @@ else:
|
|||
|
||||
def serializedATN():
|
||||
return [
|
||||
4,0,17,155,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,
|
||||
4,0,18,161,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,
|
||||
2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,
|
||||
13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,1,0,1,0,1,1,1,1,1,2,1,2,1,
|
||||
2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,
|
||||
4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,
|
||||
6,1,6,1,7,1,7,1,8,1,8,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,11,1,11,
|
||||
1,11,1,11,1,11,1,11,1,12,1,12,5,12,95,8,12,10,12,12,12,98,9,12,1,
|
||||
13,3,13,101,8,13,1,13,1,13,5,13,105,8,13,10,13,12,13,108,9,13,1,
|
||||
13,3,13,111,8,13,1,14,4,14,114,8,14,11,14,12,14,115,1,14,1,14,5,
|
||||
14,120,8,14,10,14,12,14,123,9,14,1,14,1,14,4,14,127,8,14,11,14,12,
|
||||
14,128,3,14,131,8,14,1,15,1,15,1,15,1,15,5,15,137,8,15,10,15,12,
|
||||
15,140,9,15,1,15,3,15,143,8,15,1,15,1,15,1,15,1,15,1,16,4,16,150,
|
||||
8,16,11,16,12,16,151,1,16,1,16,1,138,0,17,1,1,3,2,5,3,7,4,9,5,11,
|
||||
6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,
|
||||
1,0,5,3,0,65,90,95,95,97,122,4,0,48,57,65,90,95,95,97,122,1,0,49,
|
||||
57,1,0,48,57,3,0,9,10,12,13,32,32,165,0,1,1,0,0,0,0,3,1,0,0,0,0,
|
||||
5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,
|
||||
1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,
|
||||
1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,1,35,
|
||||
1,0,0,0,3,37,1,0,0,0,5,39,1,0,0,0,7,48,1,0,0,0,9,57,1,0,0,0,11,66,
|
||||
1,0,0,0,13,70,1,0,0,0,15,75,1,0,0,0,17,77,1,0,0,0,19,79,1,0,0,0,
|
||||
21,81,1,0,0,0,23,86,1,0,0,0,25,92,1,0,0,0,27,110,1,0,0,0,29,130,
|
||||
1,0,0,0,31,132,1,0,0,0,33,149,1,0,0,0,35,36,5,123,0,0,36,2,1,0,0,
|
||||
0,37,38,5,125,0,0,38,4,1,0,0,0,39,40,5,115,0,0,40,41,5,101,0,0,41,
|
||||
42,5,113,0,0,42,43,5,117,0,0,43,44,5,101,0,0,44,45,5,110,0,0,45,
|
||||
46,5,99,0,0,46,47,5,101,0,0,47,6,1,0,0,0,48,49,5,115,0,0,49,50,5,
|
||||
101,0,0,50,51,5,108,0,0,51,52,5,101,0,0,52,53,5,99,0,0,53,54,5,116,
|
||||
0,0,54,55,5,111,0,0,55,56,5,114,0,0,56,8,1,0,0,0,57,58,5,112,0,0,
|
||||
58,59,5,97,0,0,59,60,5,114,0,0,60,61,5,97,0,0,61,62,5,108,0,0,62,
|
||||
63,5,108,0,0,63,64,5,101,0,0,64,65,5,108,0,0,65,10,1,0,0,0,66,67,
|
||||
5,97,0,0,67,68,5,99,0,0,68,69,5,116,0,0,69,12,1,0,0,0,70,71,5,99,
|
||||
0,0,71,72,5,111,0,0,72,73,5,110,0,0,73,74,5,100,0,0,74,14,1,0,0,
|
||||
0,75,76,5,40,0,0,76,16,1,0,0,0,77,78,5,41,0,0,78,18,1,0,0,0,79,80,
|
||||
5,44,0,0,80,20,1,0,0,0,81,82,5,84,0,0,82,83,5,114,0,0,83,84,5,117,
|
||||
0,0,84,85,5,101,0,0,85,22,1,0,0,0,86,87,5,70,0,0,87,88,5,97,0,0,
|
||||
88,89,5,108,0,0,89,90,5,115,0,0,90,91,5,101,0,0,91,24,1,0,0,0,92,
|
||||
96,7,0,0,0,93,95,7,1,0,0,94,93,1,0,0,0,95,98,1,0,0,0,96,94,1,0,0,
|
||||
0,96,97,1,0,0,0,97,26,1,0,0,0,98,96,1,0,0,0,99,101,5,45,0,0,100,
|
||||
99,1,0,0,0,100,101,1,0,0,0,101,102,1,0,0,0,102,106,7,2,0,0,103,105,
|
||||
7,3,0,0,104,103,1,0,0,0,105,108,1,0,0,0,106,104,1,0,0,0,106,107,
|
||||
1,0,0,0,107,111,1,0,0,0,108,106,1,0,0,0,109,111,5,48,0,0,110,100,
|
||||
1,0,0,0,110,109,1,0,0,0,111,28,1,0,0,0,112,114,7,3,0,0,113,112,1,
|
||||
0,0,0,114,115,1,0,0,0,115,113,1,0,0,0,115,116,1,0,0,0,116,117,1,
|
||||
0,0,0,117,121,5,46,0,0,118,120,7,3,0,0,119,118,1,0,0,0,120,123,1,
|
||||
0,0,0,121,119,1,0,0,0,121,122,1,0,0,0,122,131,1,0,0,0,123,121,1,
|
||||
0,0,0,124,126,5,46,0,0,125,127,7,3,0,0,126,125,1,0,0,0,127,128,1,
|
||||
0,0,0,128,126,1,0,0,0,128,129,1,0,0,0,129,131,1,0,0,0,130,113,1,
|
||||
0,0,0,130,124,1,0,0,0,131,30,1,0,0,0,132,133,5,47,0,0,133,134,5,
|
||||
47,0,0,134,138,1,0,0,0,135,137,9,0,0,0,136,135,1,0,0,0,137,140,1,
|
||||
0,0,0,138,139,1,0,0,0,138,136,1,0,0,0,139,142,1,0,0,0,140,138,1,
|
||||
0,0,0,141,143,5,13,0,0,142,141,1,0,0,0,142,143,1,0,0,0,143,144,1,
|
||||
0,0,0,144,145,5,10,0,0,145,146,1,0,0,0,146,147,6,15,0,0,147,32,1,
|
||||
0,0,0,148,150,7,4,0,0,149,148,1,0,0,0,150,151,1,0,0,0,151,149,1,
|
||||
0,0,0,151,152,1,0,0,0,152,153,1,0,0,0,153,154,6,16,0,0,154,34,1,
|
||||
0,0,0,12,0,96,100,106,110,115,121,128,130,138,142,151,1,6,0,0
|
||||
13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,1,0,1,0,1,1,1,1,
|
||||
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,
|
||||
1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,6,
|
||||
1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,9,1,9,1,10,1,10,1,11,1,
|
||||
11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,5,13,101,
|
||||
8,13,10,13,12,13,104,9,13,1,14,3,14,107,8,14,1,14,1,14,5,14,111,
|
||||
8,14,10,14,12,14,114,9,14,1,14,3,14,117,8,14,1,15,4,15,120,8,15,
|
||||
11,15,12,15,121,1,15,1,15,5,15,126,8,15,10,15,12,15,129,9,15,1,15,
|
||||
1,15,4,15,133,8,15,11,15,12,15,134,3,15,137,8,15,1,16,1,16,1,16,
|
||||
1,16,5,16,143,8,16,10,16,12,16,146,9,16,1,16,3,16,149,8,16,1,16,
|
||||
1,16,1,16,1,16,1,17,4,17,156,8,17,11,17,12,17,157,1,17,1,17,1,144,
|
||||
0,18,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,
|
||||
13,27,14,29,15,31,16,33,17,35,18,1,0,5,3,0,65,90,95,95,97,122,4,
|
||||
0,48,57,65,90,95,95,97,122,1,0,49,57,1,0,48,57,3,0,9,10,12,13,32,
|
||||
32,171,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,
|
||||
0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,
|
||||
0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,
|
||||
0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,1,37,1,0,0,0,3,39,1,0,0,
|
||||
0,5,41,1,0,0,0,7,50,1,0,0,0,9,59,1,0,0,0,11,68,1,0,0,0,13,72,1,0,
|
||||
0,0,15,76,1,0,0,0,17,81,1,0,0,0,19,83,1,0,0,0,21,85,1,0,0,0,23,87,
|
||||
1,0,0,0,25,92,1,0,0,0,27,98,1,0,0,0,29,116,1,0,0,0,31,136,1,0,0,
|
||||
0,33,138,1,0,0,0,35,155,1,0,0,0,37,38,5,123,0,0,38,2,1,0,0,0,39,
|
||||
40,5,125,0,0,40,4,1,0,0,0,41,42,5,115,0,0,42,43,5,101,0,0,43,44,
|
||||
5,113,0,0,44,45,5,117,0,0,45,46,5,101,0,0,46,47,5,110,0,0,47,48,
|
||||
5,99,0,0,48,49,5,101,0,0,49,6,1,0,0,0,50,51,5,115,0,0,51,52,5,101,
|
||||
0,0,52,53,5,108,0,0,53,54,5,101,0,0,54,55,5,99,0,0,55,56,5,116,0,
|
||||
0,56,57,5,111,0,0,57,58,5,114,0,0,58,8,1,0,0,0,59,60,5,112,0,0,60,
|
||||
61,5,97,0,0,61,62,5,114,0,0,62,63,5,97,0,0,63,64,5,108,0,0,64,65,
|
||||
5,108,0,0,65,66,5,101,0,0,66,67,5,108,0,0,67,10,1,0,0,0,68,69,5,
|
||||
110,0,0,69,70,5,111,0,0,70,71,5,116,0,0,71,12,1,0,0,0,72,73,5,97,
|
||||
0,0,73,74,5,99,0,0,74,75,5,116,0,0,75,14,1,0,0,0,76,77,5,99,0,0,
|
||||
77,78,5,111,0,0,78,79,5,110,0,0,79,80,5,100,0,0,80,16,1,0,0,0,81,
|
||||
82,5,40,0,0,82,18,1,0,0,0,83,84,5,41,0,0,84,20,1,0,0,0,85,86,5,44,
|
||||
0,0,86,22,1,0,0,0,87,88,5,84,0,0,88,89,5,114,0,0,89,90,5,117,0,0,
|
||||
90,91,5,101,0,0,91,24,1,0,0,0,92,93,5,70,0,0,93,94,5,97,0,0,94,95,
|
||||
5,108,0,0,95,96,5,115,0,0,96,97,5,101,0,0,97,26,1,0,0,0,98,102,7,
|
||||
0,0,0,99,101,7,1,0,0,100,99,1,0,0,0,101,104,1,0,0,0,102,100,1,0,
|
||||
0,0,102,103,1,0,0,0,103,28,1,0,0,0,104,102,1,0,0,0,105,107,5,45,
|
||||
0,0,106,105,1,0,0,0,106,107,1,0,0,0,107,108,1,0,0,0,108,112,7,2,
|
||||
0,0,109,111,7,3,0,0,110,109,1,0,0,0,111,114,1,0,0,0,112,110,1,0,
|
||||
0,0,112,113,1,0,0,0,113,117,1,0,0,0,114,112,1,0,0,0,115,117,5,48,
|
||||
0,0,116,106,1,0,0,0,116,115,1,0,0,0,117,30,1,0,0,0,118,120,7,3,0,
|
||||
0,119,118,1,0,0,0,120,121,1,0,0,0,121,119,1,0,0,0,121,122,1,0,0,
|
||||
0,122,123,1,0,0,0,123,127,5,46,0,0,124,126,7,3,0,0,125,124,1,0,0,
|
||||
0,126,129,1,0,0,0,127,125,1,0,0,0,127,128,1,0,0,0,128,137,1,0,0,
|
||||
0,129,127,1,0,0,0,130,132,5,46,0,0,131,133,7,3,0,0,132,131,1,0,0,
|
||||
0,133,134,1,0,0,0,134,132,1,0,0,0,134,135,1,0,0,0,135,137,1,0,0,
|
||||
0,136,119,1,0,0,0,136,130,1,0,0,0,137,32,1,0,0,0,138,139,5,47,0,
|
||||
0,139,140,5,47,0,0,140,144,1,0,0,0,141,143,9,0,0,0,142,141,1,0,0,
|
||||
0,143,146,1,0,0,0,144,145,1,0,0,0,144,142,1,0,0,0,145,148,1,0,0,
|
||||
0,146,144,1,0,0,0,147,149,5,13,0,0,148,147,1,0,0,0,148,149,1,0,0,
|
||||
0,149,150,1,0,0,0,150,151,5,10,0,0,151,152,1,0,0,0,152,153,6,16,
|
||||
0,0,153,34,1,0,0,0,154,156,7,4,0,0,155,154,1,0,0,0,156,157,1,0,0,
|
||||
0,157,155,1,0,0,0,157,158,1,0,0,0,158,159,1,0,0,0,159,160,6,17,0,
|
||||
0,160,36,1,0,0,0,12,0,102,106,112,116,121,127,134,136,144,148,157,
|
||||
1,6,0,0
|
||||
]
|
||||
|
||||
class ptmlLexer(Lexer):
|
||||
|
@ -85,26 +88,27 @@ class ptmlLexer(Lexer):
|
|||
T__9 = 10
|
||||
T__10 = 11
|
||||
T__11 = 12
|
||||
String = 13
|
||||
Integer = 14
|
||||
Float = 15
|
||||
LINE_COMMENT = 16
|
||||
WS = 17
|
||||
T__12 = 13
|
||||
String = 14
|
||||
Integer = 15
|
||||
Float = 16
|
||||
LINE_COMMENT = 17
|
||||
WS = 18
|
||||
|
||||
channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ]
|
||||
|
||||
modeNames = [ "DEFAULT_MODE" ]
|
||||
|
||||
literalNames = [ "<INVALID>",
|
||||
"'{'", "'}'", "'sequence'", "'selector'", "'parallel'", "'act'",
|
||||
"'cond'", "'('", "')'", "','", "'True'", "'False'" ]
|
||||
"'{'", "'}'", "'sequence'", "'selector'", "'parallel'", "'not'",
|
||||
"'act'", "'cond'", "'('", "')'", "','", "'True'", "'False'" ]
|
||||
|
||||
symbolicNames = [ "<INVALID>",
|
||||
"String", "Integer", "Float", "LINE_COMMENT", "WS" ]
|
||||
|
||||
ruleNames = [ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6",
|
||||
"T__7", "T__8", "T__9", "T__10", "T__11", "String", "Integer",
|
||||
"Float", "LINE_COMMENT", "WS" ]
|
||||
"T__7", "T__8", "T__9", "T__10", "T__11", "T__12", "String",
|
||||
"Integer", "Float", "LINE_COMMENT", "WS" ]
|
||||
|
||||
grammarFileName = "ptml.g4"
|
||||
|
||||
|
|
|
@ -10,20 +10,22 @@ T__8=9
|
|||
T__9=10
|
||||
T__10=11
|
||||
T__11=12
|
||||
String=13
|
||||
Integer=14
|
||||
Float=15
|
||||
LINE_COMMENT=16
|
||||
WS=17
|
||||
T__12=13
|
||||
String=14
|
||||
Integer=15
|
||||
Float=16
|
||||
LINE_COMMENT=17
|
||||
WS=18
|
||||
'{'=1
|
||||
'}'=2
|
||||
'sequence'=3
|
||||
'selector'=4
|
||||
'parallel'=5
|
||||
'act'=6
|
||||
'cond'=7
|
||||
'('=8
|
||||
')'=9
|
||||
','=10
|
||||
'True'=11
|
||||
'False'=12
|
||||
'not'=6
|
||||
'act'=7
|
||||
'cond'=8
|
||||
'('=9
|
||||
')'=10
|
||||
','=11
|
||||
'True'=12
|
||||
'False'=13
|
||||
|
|
|
@ -10,28 +10,29 @@ else:
|
|||
|
||||
def serializedATN():
|
||||
return [
|
||||
4,1,17,65,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,1,0,4,
|
||||
4,1,18,68,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,1,0,4,
|
||||
0,14,8,0,11,0,12,0,15,1,0,1,0,1,1,1,1,1,1,1,1,5,1,24,8,1,10,1,12,
|
||||
1,27,9,1,1,1,1,1,1,2,1,2,1,2,1,2,3,2,35,8,2,1,3,1,3,1,3,1,3,3,3,
|
||||
41,8,3,1,3,1,3,1,4,1,4,1,4,1,4,3,4,49,8,4,1,4,1,4,1,4,1,4,1,4,3,
|
||||
4,56,8,4,5,4,58,8,4,10,4,12,4,61,9,4,1,5,1,5,1,5,0,0,6,0,2,4,6,8,
|
||||
10,0,2,1,0,6,7,1,0,11,12,71,0,13,1,0,0,0,2,19,1,0,0,0,4,34,1,0,0,
|
||||
0,6,36,1,0,0,0,8,48,1,0,0,0,10,62,1,0,0,0,12,14,3,2,1,0,13,12,1,
|
||||
0,0,0,14,15,1,0,0,0,15,13,1,0,0,0,15,16,1,0,0,0,16,17,1,0,0,0,17,
|
||||
18,5,0,0,1,18,1,1,0,0,0,19,20,3,4,2,0,20,25,5,1,0,0,21,24,3,6,3,
|
||||
0,22,24,3,2,1,0,23,21,1,0,0,0,23,22,1,0,0,0,24,27,1,0,0,0,25,23,
|
||||
1,0,0,0,25,26,1,0,0,0,26,28,1,0,0,0,27,25,1,0,0,0,28,29,5,2,0,0,
|
||||
29,3,1,0,0,0,30,35,5,3,0,0,31,35,5,4,0,0,32,33,5,5,0,0,33,35,5,14,
|
||||
0,0,34,30,1,0,0,0,34,31,1,0,0,0,34,32,1,0,0,0,35,5,1,0,0,0,36,37,
|
||||
7,0,0,0,37,38,5,13,0,0,38,40,5,8,0,0,39,41,3,8,4,0,40,39,1,0,0,0,
|
||||
40,41,1,0,0,0,41,42,1,0,0,0,42,43,5,9,0,0,43,7,1,0,0,0,44,49,5,14,
|
||||
0,0,45,49,5,15,0,0,46,49,3,10,5,0,47,49,5,13,0,0,48,44,1,0,0,0,48,
|
||||
45,1,0,0,0,48,46,1,0,0,0,48,47,1,0,0,0,49,59,1,0,0,0,50,55,5,10,
|
||||
0,0,51,56,5,14,0,0,52,56,5,15,0,0,53,56,3,10,5,0,54,56,5,13,0,0,
|
||||
55,51,1,0,0,0,55,52,1,0,0,0,55,53,1,0,0,0,55,54,1,0,0,0,56,58,1,
|
||||
0,0,0,57,50,1,0,0,0,58,61,1,0,0,0,59,57,1,0,0,0,59,60,1,0,0,0,60,
|
||||
9,1,0,0,0,61,59,1,0,0,0,62,63,7,1,0,0,63,11,1,0,0,0,8,15,23,25,34,
|
||||
40,48,55,59
|
||||
1,27,9,1,1,1,1,1,1,2,1,2,1,2,1,2,3,2,35,8,2,1,3,3,3,38,8,3,1,3,1,
|
||||
3,1,3,1,3,3,3,44,8,3,1,3,1,3,1,4,1,4,1,4,1,4,3,4,52,8,4,1,4,1,4,
|
||||
1,4,1,4,1,4,3,4,59,8,4,5,4,61,8,4,10,4,12,4,64,9,4,1,5,1,5,1,5,0,
|
||||
0,6,0,2,4,6,8,10,0,2,1,0,7,8,1,0,12,13,75,0,13,1,0,0,0,2,19,1,0,
|
||||
0,0,4,34,1,0,0,0,6,37,1,0,0,0,8,51,1,0,0,0,10,65,1,0,0,0,12,14,3,
|
||||
2,1,0,13,12,1,0,0,0,14,15,1,0,0,0,15,13,1,0,0,0,15,16,1,0,0,0,16,
|
||||
17,1,0,0,0,17,18,5,0,0,1,18,1,1,0,0,0,19,20,3,4,2,0,20,25,5,1,0,
|
||||
0,21,24,3,6,3,0,22,24,3,2,1,0,23,21,1,0,0,0,23,22,1,0,0,0,24,27,
|
||||
1,0,0,0,25,23,1,0,0,0,25,26,1,0,0,0,26,28,1,0,0,0,27,25,1,0,0,0,
|
||||
28,29,5,2,0,0,29,3,1,0,0,0,30,35,5,3,0,0,31,35,5,4,0,0,32,33,5,5,
|
||||
0,0,33,35,5,15,0,0,34,30,1,0,0,0,34,31,1,0,0,0,34,32,1,0,0,0,35,
|
||||
5,1,0,0,0,36,38,5,6,0,0,37,36,1,0,0,0,37,38,1,0,0,0,38,39,1,0,0,
|
||||
0,39,40,7,0,0,0,40,41,5,14,0,0,41,43,5,9,0,0,42,44,3,8,4,0,43,42,
|
||||
1,0,0,0,43,44,1,0,0,0,44,45,1,0,0,0,45,46,5,10,0,0,46,7,1,0,0,0,
|
||||
47,52,5,15,0,0,48,52,5,16,0,0,49,52,3,10,5,0,50,52,5,14,0,0,51,47,
|
||||
1,0,0,0,51,48,1,0,0,0,51,49,1,0,0,0,51,50,1,0,0,0,52,62,1,0,0,0,
|
||||
53,58,5,11,0,0,54,59,5,15,0,0,55,59,5,16,0,0,56,59,3,10,5,0,57,59,
|
||||
5,14,0,0,58,54,1,0,0,0,58,55,1,0,0,0,58,56,1,0,0,0,58,57,1,0,0,0,
|
||||
59,61,1,0,0,0,60,53,1,0,0,0,61,64,1,0,0,0,62,60,1,0,0,0,62,63,1,
|
||||
0,0,0,63,9,1,0,0,0,64,62,1,0,0,0,65,66,7,1,0,0,66,11,1,0,0,0,9,15,
|
||||
23,25,34,37,43,51,58,62
|
||||
]
|
||||
|
||||
class ptmlParser ( Parser ):
|
||||
|
@ -45,14 +46,14 @@ class ptmlParser ( Parser ):
|
|||
sharedContextCache = PredictionContextCache()
|
||||
|
||||
literalNames = [ "<INVALID>", "'{'", "'}'", "'sequence'", "'selector'",
|
||||
"'parallel'", "'act'", "'cond'", "'('", "')'", "','",
|
||||
"'True'", "'False'" ]
|
||||
"'parallel'", "'not'", "'act'", "'cond'", "'('", "')'",
|
||||
"','", "'True'", "'False'" ]
|
||||
|
||||
symbolicNames = [ "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
|
||||
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
|
||||
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
|
||||
"<INVALID>", "String", "Integer", "Float", "LINE_COMMENT",
|
||||
"WS" ]
|
||||
"<INVALID>", "<INVALID>", "String", "Integer", "Float",
|
||||
"LINE_COMMENT", "WS" ]
|
||||
|
||||
RULE_root = 0
|
||||
RULE_tree = 1
|
||||
|
@ -77,11 +78,12 @@ class ptmlParser ( Parser ):
|
|||
T__9=10
|
||||
T__10=11
|
||||
T__11=12
|
||||
String=13
|
||||
Integer=14
|
||||
Float=15
|
||||
LINE_COMMENT=16
|
||||
WS=17
|
||||
T__12=13
|
||||
String=14
|
||||
Integer=15
|
||||
Float=16
|
||||
LINE_COMMENT=17
|
||||
WS=18
|
||||
|
||||
def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
|
||||
super().__init__(input, output)
|
||||
|
@ -206,11 +208,11 @@ class ptmlParser ( Parser ):
|
|||
self.state = 25
|
||||
self._errHandler.sync(self)
|
||||
_la = self._input.LA(1)
|
||||
while (((_la) & ~0x3f) == 0 and ((1 << _la) & 248) != 0):
|
||||
while (((_la) & ~0x3f) == 0 and ((1 << _la) & 504) != 0):
|
||||
self.state = 23
|
||||
self._errHandler.sync(self)
|
||||
token = self._input.LA(1)
|
||||
if token in [6, 7]:
|
||||
if token in [6, 7, 8]:
|
||||
self.state = 21
|
||||
self.action_sign()
|
||||
pass
|
||||
|
@ -332,27 +334,35 @@ class ptmlParser ( Parser ):
|
|||
self._la = 0 # Token type
|
||||
try:
|
||||
self.enterOuterAlt(localctx, 1)
|
||||
self.state = 36
|
||||
self.state = 37
|
||||
self._errHandler.sync(self)
|
||||
_la = self._input.LA(1)
|
||||
if not(_la==6 or _la==7):
|
||||
if _la==6:
|
||||
self.state = 36
|
||||
self.match(ptmlParser.T__5)
|
||||
|
||||
|
||||
self.state = 39
|
||||
_la = self._input.LA(1)
|
||||
if not(_la==7 or _la==8):
|
||||
self._errHandler.recoverInline(self)
|
||||
else:
|
||||
self._errHandler.reportMatch(self)
|
||||
self.consume()
|
||||
self.state = 37
|
||||
self.match(ptmlParser.String)
|
||||
self.state = 38
|
||||
self.match(ptmlParser.T__7)
|
||||
self.state = 40
|
||||
self.match(ptmlParser.String)
|
||||
self.state = 41
|
||||
self.match(ptmlParser.T__8)
|
||||
self.state = 43
|
||||
self._errHandler.sync(self)
|
||||
_la = self._input.LA(1)
|
||||
if (((_la) & ~0x3f) == 0 and ((1 << _la) & 63488) != 0):
|
||||
self.state = 39
|
||||
if (((_la) & ~0x3f) == 0 and ((1 << _la) & 126976) != 0):
|
||||
self.state = 42
|
||||
self.action_parm()
|
||||
|
||||
|
||||
self.state = 42
|
||||
self.match(ptmlParser.T__8)
|
||||
self.state = 45
|
||||
self.match(ptmlParser.T__9)
|
||||
except RecognitionException as re:
|
||||
localctx.exception = re
|
||||
self._errHandler.reportError(self, re)
|
||||
|
@ -415,57 +425,57 @@ class ptmlParser ( Parser ):
|
|||
self._la = 0 # Token type
|
||||
try:
|
||||
self.enterOuterAlt(localctx, 1)
|
||||
self.state = 48
|
||||
self.state = 51
|
||||
self._errHandler.sync(self)
|
||||
token = self._input.LA(1)
|
||||
if token in [14]:
|
||||
self.state = 44
|
||||
if token in [15]:
|
||||
self.state = 47
|
||||
self.match(ptmlParser.Integer)
|
||||
pass
|
||||
elif token in [15]:
|
||||
self.state = 45
|
||||
elif token in [16]:
|
||||
self.state = 48
|
||||
self.match(ptmlParser.Float)
|
||||
pass
|
||||
elif token in [11, 12]:
|
||||
self.state = 46
|
||||
elif token in [12, 13]:
|
||||
self.state = 49
|
||||
self.boolean()
|
||||
pass
|
||||
elif token in [13]:
|
||||
self.state = 47
|
||||
elif token in [14]:
|
||||
self.state = 50
|
||||
self.match(ptmlParser.String)
|
||||
pass
|
||||
else:
|
||||
raise NoViableAltException(self)
|
||||
|
||||
self.state = 59
|
||||
self.state = 62
|
||||
self._errHandler.sync(self)
|
||||
_la = self._input.LA(1)
|
||||
while _la==10:
|
||||
self.state = 50
|
||||
self.match(ptmlParser.T__9)
|
||||
self.state = 55
|
||||
while _la==11:
|
||||
self.state = 53
|
||||
self.match(ptmlParser.T__10)
|
||||
self.state = 58
|
||||
self._errHandler.sync(self)
|
||||
token = self._input.LA(1)
|
||||
if token in [14]:
|
||||
self.state = 51
|
||||
if token in [15]:
|
||||
self.state = 54
|
||||
self.match(ptmlParser.Integer)
|
||||
pass
|
||||
elif token in [15]:
|
||||
self.state = 52
|
||||
elif token in [16]:
|
||||
self.state = 55
|
||||
self.match(ptmlParser.Float)
|
||||
pass
|
||||
elif token in [11, 12]:
|
||||
self.state = 53
|
||||
elif token in [12, 13]:
|
||||
self.state = 56
|
||||
self.boolean()
|
||||
pass
|
||||
elif token in [13]:
|
||||
self.state = 54
|
||||
elif token in [14]:
|
||||
self.state = 57
|
||||
self.match(ptmlParser.String)
|
||||
pass
|
||||
else:
|
||||
raise NoViableAltException(self)
|
||||
|
||||
self.state = 61
|
||||
self.state = 64
|
||||
self._errHandler.sync(self)
|
||||
_la = self._input.LA(1)
|
||||
|
||||
|
@ -507,9 +517,9 @@ class ptmlParser ( Parser ):
|
|||
self._la = 0 # Token type
|
||||
try:
|
||||
self.enterOuterAlt(localctx, 1)
|
||||
self.state = 62
|
||||
self.state = 65
|
||||
_la = self._input.LA(1)
|
||||
if not(_la==11 or _la==12):
|
||||
if not(_la==12 or _la==13):
|
||||
self._errHandler.recoverInline(self)
|
||||
else:
|
||||
self._errHandler.reportMatch(self)
|
||||
|
|
|
@ -80,7 +80,8 @@ class ptmlTranslator(ptmlListener):
|
|||
|
||||
# if have params
|
||||
args = []
|
||||
if len(ctx.children) > 4:
|
||||
# if str(ctx.children[0]) != 'not' and len(ctx.children) > 4:
|
||||
if ctx.action_parm():
|
||||
params = ctx.action_parm()
|
||||
for i in params.children:
|
||||
if isinstance(i, ptmlParser.BooleanContext):
|
||||
|
@ -96,8 +97,15 @@ class ptmlTranslator(ptmlListener):
|
|||
|
||||
node = eval(f"{name}({args})")
|
||||
node.set_scene(self.scene)
|
||||
# connect
|
||||
self.stack[-1].add_child(node)
|
||||
|
||||
# if have 'not' decorator
|
||||
if str(ctx.children[0]) == 'not':
|
||||
upper_node = ptree.decorators.Inverter(node)
|
||||
# connect
|
||||
self.stack[-1].add_child(upper_node)
|
||||
else:
|
||||
# connect
|
||||
self.stack[-1].add_child(node)
|
||||
|
||||
# Exit a parse tree produced by ptmlParser#action_sign.
|
||||
def exitAction_sign(self, ctx: ptmlParser.Action_signContext):
|
||||
|
|
Loading…
Reference in New Issue