1 .namespace [ "Simple" ]
9 optable = new "PGE::OPTable"
10 store_global "Simple", "$optable", optable
12 p6rule = compreg "PGE::P6Rule"
13 term = p6rule("\\d+ | <ident>", 'grammar' => "Simple", 'name' => "term")
15 optable.'newtok'("infix:+", 'precedence' => '=')
16 optable.'newtok'("infix:-", 'equiv' => 'infix:+')
18 optable.'newtok'("infix:*", 'tighter' => 'infix:+')
19 optable.'newtok'("infix:/", 'equiv' => 'infix:*')
20 optable.'newtok'("infix:%", 'equiv' => 'infix:*')
22 optable.'newtok'("prefix:+", 'tighter' => 'infix:*')
23 optable.'newtok'("prefix:-", 'equiv' => 'prefix:+')
24 optable.'newtok'("prefix:!", 'equiv' => 'prefix:+')
26 optable.'newtok'("infix:**", 'tighter' => '>prefix:+')
28 optable.'newtok'("postcircumfix:( )", 'tighter' => "infix:**", 'nullterm' => 1)
30 optable.'newtok'("term:", 'tighter' => 'postcircumfix:( )', 'parsed' => term)
31 optable.'newtok'("circumfix:( )", 'equiv' => 'term:')
33 optable.'newtok'("infix:==", 'looser' => 'infix:+')
34 optable.'newtok'("infix:!=", 'equiv' => 'infix:==')
36 optable.'newtok'("ternary:? :", 'looser' => 'infix:==', 'assoc' => 'right')
37 optable.'newtok'("infix:=", 'looser' => 'ternary:? :', 'assoc' => 'right')
43 optable = find_global "Simple", "$optable"
44 $P0 = optable."parse"(mob)
52 # vim: expandtab shiftwidth=4 ft=pir: