patterns
satomic_pattern
:=
patterns
|
true
(pat_const_ctor (ast_case_tag 1))
patterns
|
false
(pat_const_ctor (ast_case_tag 0))
patterns
|
STRING
patterns
|
?
NAME
patterns
|
_
pat_any
patterns
|
(
spattern
)
patterns
|
struct {
spat_assigns
}
patterns
|
sctor_name
satomic_pattern
patterns
|
sctor_name
patterns
|
STRING
..
STRING
patterns
|
sintegral
patterns
|
sintegral
..
sintegral
patterns
|
NaN
pat_nan
patterns
|
sfloating
..
sfloating
spat_assign
:=
patterns
|
NAME
=
spattern
;
spat_assigns
:=
patterns
|
spat_assign
patterns
|
spat_assign
spat_assigns
sctor_name
:=
patterns
|
squalified_name
patterns
|
case
INTEGER
sfloating
:=
patterns
|
sfloat
patterns
|
-
sfloat
patterns
|
inf
Float_inf
patterns
|
- inf
Float_minus_inf
scoercive_pattern
:=
patterns
|
satomic_pattern
patterns
|
satomic_pattern
:
sarrow
stuple_pattern
:=
patterns
|
scoercive_pattern
patterns
|
scoercive_pattern
stuple_pattern_suffix
stuple_pattern_suffix
:=
patterns
|
,
scoercive_pattern
patterns
|
,
scoercive_pattern
stuple_pattern_suffix
sas_pattern
:=
patterns
|
stuple_pattern
patterns
|
stuple_pattern
as
NAME
spattern
:=
patterns
|
sas_pattern
patterns
|
sas_pattern
when
sexpr