示例#1
0
 // Pair ::= "(" val "," val ")"
 void Pair(Relation r)
 {
     if (ts.Current.kind != Kind.LEFT_PARENT) return;
     Expect(Kind.LEFT_PARENT);
     string x = ts.Current.value;
     Expect(Kind.VALUE);
     Expect(Kind.COMMA);
     string y = ts.Current.value;
     Expect(Kind.VALUE);
     Expect(Kind.RIGHT_PARENT);
     r.AddPair(x, y);
 }
示例#2
0
 // Cons ::=  pair seqCons | ε
 void Cons(Relation r)
 {
     Pair(r); SeqCons(r);
 }
示例#3
0
 // Cons ::=  pair seqCons | ε
 void Cons(Relation r)
 {
     Pair(r); SeqCons(r);
 }
示例#4
0
 // SeqCons ::= "," pair seqCons | ε
 void SeqCons(Relation r)
 {
     if (ts.Current.kind != Kind.COMMA) return;
     ts.MoveNext();
     Pair(r);
     SeqCons(r);
 }
示例#5
0
 public DSL()
 {
     statements = new Statements();
     satisfy = new Relation();
     notSatisfy = new Relation();
 }