Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
1 lines (1 sloc) 21.7 KB
<ns0:grammar xmlns:ns0="http://planet-sl.org/bgf"><ns0:production><nonterminal>Module</nonterminal><ns0:expression><nonterminal>ListDeclaration</nonterminal></ns0:expression></ns0:production><ns0:production><nonterminal>Declaration</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><terminal>enum</terminal></ns0:expression><ns0:expression><nonterminal>Ident</nonterminal></ns0:expression><ns0:expression><terminal>=</terminal></ns0:expression><ns0:expression><nonterminal>ListEnumId</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>Clafer</nonterminal></ns0:expression><ns0:expression><nonterminal>Constraint</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>Clafer</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>Abstract</nonterminal></ns0:expression><ns0:expression><nonterminal>GCard</nonterminal></ns0:expression><ns0:expression><nonterminal>Ident</nonterminal></ns0:expression><ns0:expression><nonterminal>Super</nonterminal></ns0:expression><ns0:expression><nonterminal>Card</nonterminal></ns0:expression><ns0:expression><nonterminal>Elements</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>Constraint</nonterminal><ns0:expression><sequence><ns0:expression><terminal>[</terminal></ns0:expression><ns0:expression><nonterminal>ListLExp</nonterminal></ns0:expression><ns0:expression><terminal>]</terminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>Abstract</nonterminal><ns0:expression><choice><ns0:expression><epsilon/></ns0:expression><ns0:expression><terminal>abstract</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>Elements</nonterminal><ns0:expression><choice><ns0:expression><epsilon/></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>{</terminal></ns0:expression><ns0:expression><nonterminal>ListElement</nonterminal></ns0:expression><ns0:expression><terminal>}</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>Element</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>Clafer</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>&#8216;</terminal></ns0:expression><ns0:expression><nonterminal>Name</nonterminal></ns0:expression><ns0:expression><nonterminal>Card</nonterminal></ns0:expression><ns0:expression><nonterminal>Elements</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>Constraint</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>Super</nonterminal><ns0:expression><choice><ns0:expression><epsilon/></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>:</terminal></ns0:expression><ns0:expression><nonterminal>Name</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>extends</terminal></ns0:expression><ns0:expression><nonterminal>Name</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>&#8722;&gt;</terminal></ns0:expression><ns0:expression><nonterminal>ListModId</nonterminal></ns0:expression><ns0:expression><nonterminal>SExp</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>GCard</nonterminal><ns0:expression><choice><ns0:expression><epsilon/></ns0:expression><ns0:expression><terminal>xor</terminal></ns0:expression><ns0:expression><terminal>or</terminal></ns0:expression><ns0:expression><terminal>mux</terminal></ns0:expression><ns0:expression><terminal>opt</terminal></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>&lt;</terminal></ns0:expression><ns0:expression><nonterminal>GNCard</nonterminal></ns0:expression><ns0:expression><terminal>&gt;</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>Card</nonterminal><ns0:expression><choice><ns0:expression><epsilon/></ns0:expression><ns0:expression><terminal>?</terminal></ns0:expression><ns0:expression><terminal>+</terminal></ns0:expression><ns0:expression><terminal>*</terminal></ns0:expression><ns0:expression><nonterminal>NCard</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>GNCard</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>Integer</nonterminal></ns0:expression><ns0:expression><terminal>&#8722;</terminal></ns0:expression><ns0:expression><nonterminal>ExInteger</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>NCard</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>Integer</nonterminal></ns0:expression><ns0:expression><terminal>..</terminal></ns0:expression><ns0:expression><nonterminal>ExInteger</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>ExInteger</nonterminal><ns0:expression><choice><ns0:expression><terminal>*</terminal></ns0:expression><ns0:expression><nonterminal>Integer</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>Name</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>ListModId</nonterminal></ns0:expression><ns0:expression><nonterminal>Ident</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>LExp</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>LExp</nonterminal></ns0:expression><ns0:expression><nonterminal>Iff</nonterminal></ns0:expression><ns0:expression><nonterminal>LExp1</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>LExp1</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>LExp1</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>LExp1</nonterminal></ns0:expression><ns0:expression><nonterminal>Implies</nonterminal></ns0:expression><ns0:expression><nonterminal>LExp2</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>LExp1</nonterminal></ns0:expression><ns0:expression><nonterminal>Implies</nonterminal></ns0:expression><ns0:expression><nonterminal>LExp2</nonterminal></ns0:expression><ns0:expression><terminal>else</terminal></ns0:expression><ns0:expression><nonterminal>LExp2</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>LExp2</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>LExp2</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>LExp2</nonterminal></ns0:expression><ns0:expression><nonterminal>Or</nonterminal></ns0:expression><ns0:expression><nonterminal>LExp3</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>LExp3</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>LExp3</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>LExp3</nonterminal></ns0:expression><ns0:expression><nonterminal>Xor</nonterminal></ns0:expression><ns0:expression><nonterminal>LExp4</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>LExp4</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>LExp4</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>LExp4</nonterminal></ns0:expression><ns0:expression><nonterminal>And</nonterminal></ns0:expression><ns0:expression><nonterminal>LExp5</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>LExp5</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>LExp5</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>Neg</nonterminal></ns0:expression><ns0:expression><nonterminal>LExp6</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>LExp6</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>LExp6</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>Term</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>LExp</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>Term</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>CmpExp</nonterminal></ns0:expression><ns0:expression><nonterminal>SExp</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>Quant</nonterminal></ns0:expression><ns0:expression><nonterminal>SExp</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>ListDecl</nonterminal></ns0:expression><ns0:expression><terminal>|</terminal></ns0:expression><ns0:expression><nonterminal>LExp</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>Iff</nonterminal><ns0:expression><terminal>&lt;=&gt;</terminal></ns0:expression></ns0:production><ns0:production><nonterminal>Implies</nonterminal><ns0:expression><terminal>=&gt;</terminal></ns0:expression></ns0:production><ns0:production><nonterminal>And</nonterminal><ns0:expression><terminal>&amp;&amp;</terminal></ns0:expression></ns0:production><ns0:production><nonterminal>Xor</nonterminal><ns0:expression><terminal>xor</terminal></ns0:expression></ns0:production><ns0:production><nonterminal>Or</nonterminal><ns0:expression><terminal>||</terminal></ns0:expression></ns0:production><ns0:production><nonterminal>Neg</nonterminal><ns0:expression><terminal>~</terminal></ns0:expression></ns0:production><ns0:production><nonterminal>CmpExp</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression><ns0:expression><terminal>&lt;</terminal></ns0:expression><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression><ns0:expression><terminal>&gt;</terminal></ns0:expression><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression><ns0:expression><terminal>=</terminal></ns0:expression><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression><ns0:expression><terminal>==</terminal></ns0:expression><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression><ns0:expression><terminal>&lt;=</terminal></ns0:expression><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression><ns0:expression><terminal>&gt;=</terminal></ns0:expression><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression><ns0:expression><terminal>!=</terminal></ns0:expression><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression><ns0:expression><terminal>/=</terminal></ns0:expression><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression><ns0:expression><terminal>in</terminal></ns0:expression><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression><ns0:expression><terminal>not</terminal></ns0:expression><ns0:expression><terminal>in</terminal></ns0:expression><ns0:expression><nonterminal>Exp</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>Exp</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>AExp</nonterminal></ns0:expression><ns0:expression><nonterminal>StrExp</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>Quant</nonterminal><ns0:expression><choice><ns0:expression><terminal>no</terminal></ns0:expression><ns0:expression><terminal>lone</terminal></ns0:expression><ns0:expression><terminal>one</terminal></ns0:expression><ns0:expression><terminal>some</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>ExQuant</nonterminal><ns0:expression><choice><ns0:expression><terminal>all</terminal></ns0:expression><ns0:expression><nonterminal>Quant</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>SExp</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>SExp</nonterminal></ns0:expression><ns0:expression><terminal>++</terminal></ns0:expression><ns0:expression><nonterminal>SExp1</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>SExp1</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>SExp1</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>SExp1</nonterminal></ns0:expression><ns0:expression><terminal>&amp;</terminal></ns0:expression><ns0:expression><nonterminal>SExp2</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>SExp2</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>SExp2</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>SExp2</nonterminal></ns0:expression><ns0:expression><terminal>&lt;:</terminal></ns0:expression><ns0:expression><nonterminal>SExp3</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>SExp3</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>SExp3</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>SExp3</nonterminal></ns0:expression><ns0:expression><terminal>:&gt;</terminal></ns0:expression><ns0:expression><nonterminal>SExp4</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>SExp4</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>SExp4</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>SExp4</nonterminal></ns0:expression><ns0:expression><terminal>.</terminal></ns0:expression><ns0:expression><nonterminal>SExp5</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>SExp5</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>SExp5</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>Ident</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>SExp</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>Decl</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>ExQuant</nonterminal></ns0:expression><ns0:expression><nonterminal>Disj</nonterminal></ns0:expression><ns0:expression><nonterminal>ListLocId</nonterminal></ns0:expression><ns0:expression><terminal>:</terminal></ns0:expression><ns0:expression><nonterminal>SExp</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>Disj</nonterminal><ns0:expression><choice><ns0:expression><epsilon/></ns0:expression><ns0:expression><terminal>disj</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>AExp</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>AExp</nonterminal></ns0:expression><ns0:expression><terminal>+</terminal></ns0:expression><ns0:expression><nonterminal>AExp1</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>AExp</nonterminal></ns0:expression><ns0:expression><terminal>&#8722;</terminal></ns0:expression><ns0:expression><nonterminal>AExp1</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>AExp1</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>AExp1</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>AExp1</nonterminal></ns0:expression><ns0:expression><terminal>*</terminal></ns0:expression><ns0:expression><nonterminal>AExp2</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>AExp2</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>AExp2</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><terminal>#</terminal></ns0:expression><ns0:expression><nonterminal>SExp</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>SExp</nonterminal></ns0:expression><ns0:expression><nonterminal>Integer</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>AExp</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>StrExp</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>StrExp</nonterminal></ns0:expression><ns0:expression><terminal>++</terminal></ns0:expression><ns0:expression><nonterminal>StrExp</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>String</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>EnumId</nonterminal><ns0:expression><nonterminal>Ident</nonterminal></ns0:expression></ns0:production><ns0:production><nonterminal>ModId</nonterminal><ns0:expression><nonterminal>Ident</nonterminal></ns0:expression></ns0:production><ns0:production><nonterminal>LocId</nonterminal><ns0:expression><nonterminal>Ident</nonterminal></ns0:expression></ns0:production><ns0:production><nonterminal>ListDeclaration</nonterminal><ns0:expression><choice><ns0:expression><epsilon/></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>Declaration</nonterminal></ns0:expression><ns0:expression><nonterminal>ListDeclaration</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>ListEnumId</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>EnumId</nonterminal></ns0:expression><ns0:expression><nonterminal>EnumId</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>EnumId</nonterminal></ns0:expression><ns0:expression><terminal>|</terminal></ns0:expression><ns0:expression><nonterminal>ListEnumId</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>ListElement</nonterminal><ns0:expression><choice><ns0:expression><epsilon/></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>Element</nonterminal></ns0:expression><ns0:expression><nonterminal>ListElement</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>ListLExp</nonterminal><ns0:expression><choice><ns0:expression><epsilon/></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>LExp</nonterminal></ns0:expression><ns0:expression><nonterminal>ListLExp</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>ListDecl</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>Decl</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>Decl</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><nonterminal>ListDecl</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>ListLocId</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>LocId</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>LocId</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><nonterminal>ListLocId</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>ListModId</nonterminal><ns0:expression><choice><ns0:expression><epsilon/></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>ModId</nonterminal></ns0:expression><ns0:expression><terminal>/</terminal></ns0:expression><ns0:expression><nonterminal>ListModId</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production></ns0:grammar>