File: binding.2.ott

package info (click to toggle)
ott 0.34%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 6,440 kB
  • sloc: ml: 25,103; makefile: 1,375; awk: 736; lisp: 183; sh: 14; sed: 4
file content (24 lines) | stat: -rw-r--r-- 1,117 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
metavar value_name, x ::=
  {{ isa string }} {{ coq nat }} {{ coq-equality }} {{ hol string }} {{ ocaml int }}
  {{ lex alphanum }} 

grammar
t :: E_ ::=
  | x                                  ::   :: ident
  | ( t1 , t2 )                        ::   :: pair
  | let p = t in t'                    ::   :: letrec      (+ bind binders(p) in t' +)


p :: P_ ::=
  | _                                  ::   :: wildcard    (+ binders = {} +)
  | x                                  ::   :: ident       (+ binders = x +)
  | ( p1 , p2 )                        ::   :: pair        (+ binders = binders(p1) union binders(p2) +)


terminals :: terminals_ ::=
  |  ->                                ::   :: arrow      {{ tex \rightarrow }}
  |  function                          ::   :: function   {{ tex \textbf{function} }}
  | |-                                 ::   :: turnstile  {{ tex \vdash }}
  | -->                                ::   :: red        {{ tex \longrightarrow }}
  | '{'                                ::   :: leftbrace  {{ tex \{ }}
  | '}'                                ::   :: rightbrace {{ tex \} }}