module IBAF-Start imports IBAF-Statements IBAF-Expressions Funcons // Language "IBAFlang" lexical syntax // Language LEX-keyword = "else" LEX-keyword = "false" LEX-keyword = "if" LEX-keyword = "true" LEX-keyword = "while" LEX-keyword = "int" syntax // Language context-free syntax // Language L-start.L-start--L-statement-S = L-statement* L-keyword.LEX-keyword = LEX-keyword context-free syntax // Semantics FCT.T-start = "start" "[:" L-start ":]" FCT-Quoted.LEX-keyword = LEX-keyword context-free syntax // Desugaring variables // Meta-variables L-start = "(:START" [1-9]? ":)" {prefer} L-start? = "(:START" [1-9]? "?:)" {prefer} L-start* = "(:START" [1-9]? "*:)" {prefer} L-start+ = "(:START" [1-9]? "+:)" {prefer} L-statement* = "..." [1-9]? {prefer} // SDF comments lexical syntax LEX-id = LEX-keyword {reject} lexical restrictions LEX-id -/- [A-Za-z0-9] context-free syntax L-exp.L-exp--L-exp-PLUS-L-exp = L-exp "+" L-exp {assoc} L-exp.L-exp--L-exp-AMPERSAND-AMPERSAND-L-exp = L-exp "&&" L-exp {assoc} sorts // ASTs T-start