diff --git a/robowaiter/behavior_tree/ptml/ptml.g4 b/robowaiter/behavior_tree/ptml/ptml.g4 index 24f0c03..8e2db82 100644 --- a/robowaiter/behavior_tree/ptml/ptml.g4 +++ b/robowaiter/behavior_tree/ptml/ptml.g4 @@ -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' ; diff --git a/robowaiter/behavior_tree/ptml/ptml.interp b/robowaiter/behavior_tree/ptml/ptml.interp index 4edd60b..8615e1d 100644 --- a/robowaiter/behavior_tree/ptml/ptml.interp +++ b/robowaiter/behavior_tree/ptml/ptml.interp @@ -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] \ No newline at end of file +[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] \ No newline at end of file diff --git a/robowaiter/behavior_tree/ptml/ptml.tokens b/robowaiter/behavior_tree/ptml/ptml.tokens index 6f604be..e6d0e71 100644 --- a/robowaiter/behavior_tree/ptml/ptml.tokens +++ b/robowaiter/behavior_tree/ptml/ptml.tokens @@ -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 diff --git a/robowaiter/behavior_tree/ptml/ptmlLexer.interp b/robowaiter/behavior_tree/ptml/ptmlLexer.interp index a624c96..983d4a8 100644 --- a/robowaiter/behavior_tree/ptml/ptmlLexer.interp +++ b/robowaiter/behavior_tree/ptml/ptmlLexer.interp @@ -5,6 +5,7 @@ null 'sequence' 'selector' 'parallel' +'not' 'act' 'cond' '(' @@ -32,6 +33,7 @@ null null null null +null String Integer Float @@ -51,6 +53,7 @@ T__8 T__9 T__10 T__11 +T__12 String Integer Float @@ -65,4 +68,4 @@ mode names: DEFAULT_MODE atn: -[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, 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] \ No newline at end of file +[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, 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] \ No newline at end of file diff --git a/robowaiter/behavior_tree/ptml/ptmlLexer.py b/robowaiter/behavior_tree/ptml/ptmlLexer.py index 0cee05f..6bd416c 100644 --- a/robowaiter/behavior_tree/ptml/ptmlLexer.py +++ b/robowaiter/behavior_tree/ptml/ptmlLexer.py @@ -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 = [ "", - "'{'", "'}'", "'sequence'", "'selector'", "'parallel'", "'act'", - "'cond'", "'('", "')'", "','", "'True'", "'False'" ] + "'{'", "'}'", "'sequence'", "'selector'", "'parallel'", "'not'", + "'act'", "'cond'", "'('", "')'", "','", "'True'", "'False'" ] symbolicNames = [ "", "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" diff --git a/robowaiter/behavior_tree/ptml/ptmlLexer.tokens b/robowaiter/behavior_tree/ptml/ptmlLexer.tokens index 6f604be..e6d0e71 100644 --- a/robowaiter/behavior_tree/ptml/ptmlLexer.tokens +++ b/robowaiter/behavior_tree/ptml/ptmlLexer.tokens @@ -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 diff --git a/robowaiter/behavior_tree/ptml/ptmlParser.py b/robowaiter/behavior_tree/ptml/ptmlParser.py index a3dd2d4..ff36a98 100644 --- a/robowaiter/behavior_tree/ptml/ptmlParser.py +++ b/robowaiter/behavior_tree/ptml/ptmlParser.py @@ -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 = [ "", "'{'", "'}'", "'sequence'", "'selector'", - "'parallel'", "'act'", "'cond'", "'('", "')'", "','", - "'True'", "'False'" ] + "'parallel'", "'not'", "'act'", "'cond'", "'('", "')'", + "','", "'True'", "'False'" ] symbolicNames = [ "", "", "", "", "", "", "", "", "", "", "", "", - "", "String", "Integer", "Float", "LINE_COMMENT", - "WS" ] + "", "", "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) diff --git a/robowaiter/behavior_tree/ptml/ptmlTranslator.py b/robowaiter/behavior_tree/ptml/ptmlTranslator.py index d2c0944..8f535c0 100644 --- a/robowaiter/behavior_tree/ptml/ptmlTranslator.py +++ b/robowaiter/behavior_tree/ptml/ptmlTranslator.py @@ -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):