Module
Railroad diagram
func
identifier
(
identifier
,
identifier
)
BlockExpr
func
Railroad diagram
func
not
identPart
identifier
Railroad diagram
not
if
else
func
let
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
identStart
Railroad diagram
letter
_
Expr
Railroad diagram
identifier
:=
Expr
PrimaryExpr
+
-
*
/
PrimaryExpr
PrimaryExpr
Railroad diagram
(
Expr
)
digit
identifier
(
Expr
,
Expr
)
identifier
IfExpr
IfExpr
Railroad diagram
if
Expr
BlockExpr
else
BlockExpr
IfExpr