[NEXT] [PREV]    HANDBOOK / LANGUAGE REFERENCE MANUAL /

Syntax Summary

Gentle
Applications
Concepts
Examples
Handbook
Support
Download

Module = ["'module'" Ident] [UseClause] [ExportClause] Declarations .
UseClause = "'use'" Ident{ "," Ident} .
ExportClause = "'export'" Ident{ "," Ident} .
Declarations = {Declaration} .
Declaration = TypeDecl | PredicateDecl | VariableDecl | TableDecl | RootDef .
TypeDecl = "'type'" Ident [["="] TermSpec{ [","] TermSpec}] .
TermSpec = IdentLC ["("[ParamSpec{ "," ParamSpec}]")"] .
ParamSpec = [Ident ":"] Ident .
VariableDecl = "'var'" Ident ":" Ident .
TableDecl = "'table'" Ident "(" Ident ":" Ident{ "," Ident ":" Ident} ")" .
PredicateDeclaration = Category Ident Signature Rules .
Category = "'nonterm'" | "'token'" | "'action'"
       | "'condition'" | "'choice'" | "'sweep'" .
Signature =
        ["(" [ParamSpec{ "," ParamSpec}] ["->"[ParamSpec{ "," ParamSpec}]]")"] .
Rules = {Head ":" Body "."} | {"'rule'" Head [":"] Body ["."]} .
Head = Ident ["(" [Pattern{ "," Pattern}] ["->" [Expression{ "," Expression}]] ")"] .
Pattern = IdentUC [":" Pattern]
       | Functor ["("[Pattern{ "," Pattern}]")"]
       | "_" .
Expression = Expr2 | Expression ( "+" | "-" ) Expr2 .
Expr2 = Expr3 | Expr2 ( "*" | "/" ) Expr3 .
Expr3 = IdentUC | Number | String
       | Functor ["("[Expression{ "," Expression}]")"]
       | ( "+" | "-" ) Expr3 | "(" Expression ")"
Functor = [Ident "'"] IdentLC .
Body = {Member} [CostSpec]
CostSpec = "$" Number .
Member = Ident ["(" [Expression{ "," Expression}] ["->" [Pattern{ "," Pattern}]] ")"]
       | ContextDesignator "<-" Expression
       | ContextDesignator "->" Pattern
       | IdentUC "::" Ident
       | String
       | "(|" {Member} "||" {Member} {"||" {Member}} "|)"
       | "[|" {Member} "|]" .
ContextDesignator = [IdentUC "'"] Ident .
RootDef = "'root'" {Member} .



[NEXT] [PREV]