<Id>::= [ 'A-Z' | 'a-z' ][ 'A-Z' | 'a-z' | '0-9' | \- | _ | \' ]*
<Uri>::= <Conuri> | <Varuri> | <Indtyuri> | <Indconuri>
<Conuri>::= "cic:/" [<Id> "/" ]*<Id> ".con"
<Varuri>::= "cic:/" [<Id> "/" ]*<Id> ".var"
<Indtyuri>::= "cic:/" [<Id> "/" ]*<Id> ".ind#1/" ['0-9']+
<Indconuri>::= "cic:/" [<Id> "/" ]*<Id> ".ind#1/" ['0-9']+ "/" ['0-9']+
<Exp_Named_Subst>::= "{" [ [ [<Id> | <Varuri> ] ":=" <Expression> ";" ]* [ [<Id> | <Varuri> ] ":=" <Expression> ] ]? "}"
<Alias>::= "alias" "id" <Id> = <Uri>
<Genid>::= [ <Id> | <Varuri> | <Indtyuri> | <Indconuri> ] <Exp_Named_Subst>
<Expr>::= "\" <Genid> [ ":" | ":=" ] <Expr>"."<Expr>
::= "!" <Genid> ":" <Expr>"."<Expr>
::= <Expr>"->"<Expr>
::= "(" <Expr> ")" "->"<Expr>
::= "(" <Expr> [ " " <Expr>]* ")"
::= "Prop" | "Set" | "Type" | "?" | <Uri> | <Id>