Module
Railroad diagram
func
identifier
(
identifier
,
identifier
)
BlockExpr
func
Railroad diagram
func
not
identPart
identifier
Railroad diagram
not
if
else
func
let
and
or
identStart
identPart
BlockExpr
Railroad diagram
{
let
identifier
=
Expr
;
Expr
;
Expr
}
identPart
Railroad diagram
identStart
digit
if
Railroad diagram
if
not
identPart
else
Railroad diagram
else
not
identPart
let
Railroad diagram
let
not
identPart
and
Railroad diagram
and
not
identPart
or
Railroad diagram
or
not
identPart
identStart
Railroad diagram
letter
_
Expr
Railroad diagram
identifier
:=
Expr
PrimaryExpr
+
-
*
/
==
!=
<=
<
>=
>
and
or
PrimaryExpr
PrimaryExpr
Railroad diagram
(
Expr
)
digit
identifier
(
Expr
,
Expr
)
identifier
IfExpr
IfExpr
Railroad diagram
if
Expr
BlockExpr
else
BlockExpr
IfExpr