... ---------------------------------------------------------------------- Ran 3 tests in 0.004s OK Module arith { Use demo_lib { value } Use demo_lib { t2, t3, t4 } Type op_id { Sum { Constructor Plus Constructor Minus Constructor Star } } Type op_array { Product { Field ops op_id (seq=True) } } Type assign { Product { Field name string Field flags string (seq=True) } } Type cflow { Sum { Constructor Break Constructor Continue Constructor Return { Field status int } } } Type source_location { Product { Field path string Field line int Field col int Field length int } } Type word { Product { Field value string } } Type bool_expr { Sum { Constructor Binary { Field left word Field right word } Constructor Unary { Field child word } Constructor LogicalNot { Field b bool_expr } Constructor LogicalBinary { Field op op_id Field left bool_expr Field right bool_expr } } } Type Token { Product { Field s string Field b bool } } Type cflow2 { Sum { Constructor Break Constructor Continue Constructor Return { Field status int } } } Type other { Product { Field t Token } } } (double_quoted left:5 tokens:[foo bar]) (expr.Binary left: (double_quoted left:5 tokens:[foo bar]) right: (double_quoted left:5 tokens:[foo bar]) )