hgom-0.5.1: examples/example.gom
module Definition
imports String int
abstract syntax
Input = Input(ctx: Context, cl: ConstraintList, t: Term, ty: Type)
// comment
Type = Atom(name: String)
| Composed(dom: TypeList, codom: Type)
TypeList = TyList(Type*)
Term = Var(name: /* comment */ String)
| Fun(name: String, args: TermList)
TermList = TeList(Term*)
Constraint = Subtype(type1: String, type2: String)
ConstraintList = CList(Constraint*)
Jugement = SigOf(name: String, sig: Type)
Mapping = TypeOf(term: Term, sig: Type)
Context = Context(Jugement*)
Statement = Statement1(name: String, path: PathTree, ctx: Context, consequence1: Mapping)
| Statement2(name: String, path: PathTree, ctx: Context, consequence2: Constraint)
Tree = SList(Statement*)
Label = Label(num: int)
PathTree = PTree(Label*)
Paths = Paths(PathTree*)