Skip to content

Latest commit

 

History

History
27 lines (18 loc) · 466 Bytes

grammar.md

File metadata and controls

27 lines (18 loc) · 466 Bytes

Func -> fnc FuncName(OptArgs) OptType { Expr }

OptArgs -> Args | Epsilon Args -> Args, Args | Arg Arg -> Name : Type

OptType -> -> Type | Epsilon

InfixFunc -> + | - | * | / | FuncName

Expr -> FuncName(OptFuncArgs) | Expr InfixFunc T | (Expr) | T

T -> Var | Number

OptFuncArgs -> Exprs | Epsilon Exprs -> Exprs, Expr | Expr

Declare -> Var := Expr; FuncName -> String Var -> String

Number -> i64