void SimSet(out CharSet s) { int n1, n2; s = new CharSet(); if (la.kind == 1) { Get(); CharClass c = tab.FindCharClass(t.val); if (c == null) { SemErr("undefined name"); } else { s.Or(c.set); } } else if (la.kind == 3) { Get(); string name = t.val; name = tab.Unescape(name.Substring(1, name.Length - 2)); foreach (char ch in name) { if (dfa.ignoreCase) { s.Set(char.ToLower(ch)); } else { s.Set(ch); } } } else if (la.kind == 5) { Char(out n1); s.Set(n1); if (la.kind == 22) { Get(); Char(out n2); for (int i = n1; i <= n2; i++) { s.Set(i); } } } else if (la.kind == 23) { Get(); s = new CharSet(); s.Fill(); } else { SynErr(46); } }
void Set(out CharSet s) { CharSet s2; SimSet(out s); while (la.kind == 20 || la.kind == 21) { if (la.kind == 20) { Get(); SimSet(out s2); s.Or(s2); } else { Get(); SimSet(out s2); s.Subtract(s2); } } }
void SimSet(out CharSet s) { int n1, n2; s = new CharSet(); if (la.kind == 1) { Get(); CharClass c = tab.FindCharClass(t.val); if (c == null) SemErr("undefined name"); else s.Or(c.set); } else if (la.kind == 3) { Get(); string name = t.val; name = tab.Unescape(name.Substring(1, name.Length-2)); foreach (char ch in name) if (dfa.ignoreCase) s.Set(char.ToLower(ch)); else s.Set(ch); } else if (la.kind == 5) { Char(out n1); s.Set(n1); if (la.kind == 27) { Get(); Char(out n2); for (int i = n1; i <= n2; i++) s.Set(i); } } else if (la.kind == 28) { Get(); s = new CharSet(); s.Fill(); } else SynErr(56); }
void Set(out CharSet s) { CharSet s2; SimSet(out s); while (la.kind == 25 || la.kind == 26) { if (la.kind == 25) { Get(); SimSet(out s2); s.Or(s2); } else { Get(); SimSet(out s2); s.Subtract(s2); } } }
void SimSet( #line 228 "Coco.atg" //SOURCE beg=9517,len=13,col=8 out CharSet s #line default //END SOURCE ) { #line 228 "Coco.atg" //SOURCE beg=9545,len=12,col=36 int n1, n2; #line default //END SOURCE #line 229 "Coco.atg" //SOURCE beg=9596,len=19,col=36 s = new CharSet(); #line default //END SOURCE if (la.kind == _ident) { Get(); #line 230 "Coco.atg" //SOURCE beg=9654,len=169,col=36 CharClass c = tab.FindCharClass(t.val); if (c == null) SemErr("undefined name"); else s.Or(c.set); #line default //END SOURCE } else if (la.kind == _string) { Get(); #line 233 "Coco.atg" //SOURCE beg=9862,len=311,col=36 string name = t.val; name = tab.Unescape(name.Substring(1, name.Length-2)); foreach (char ch in name) if (dfa.ignoreCase) s.Set(char.ToLower(ch)); else s.Set(ch); #line default //END SOURCE } else if (la.kind == _char) { Char( #line 238 "Coco.atg" //SOURCE beg=10184,len=6,col=8 out n1 #line default //END SOURCE ); #line 238 "Coco.atg" //SOURCE beg=10212,len=11,col=36 s.Set(n1); #line default //END SOURCE if (la.kind == 23) { Get(); Char( #line 239 "Coco.atg" //SOURCE beg=10241,len=6,col=15 out n2 #line default //END SOURCE ); #line 239 "Coco.atg" //SOURCE beg=10262,len=41,col=36 for (int i = n1; i <= n2; i++) s.Set(i); #line default //END SOURCE } } else if (la.kind == 24) { Get(); #line 241 "Coco.atg" //SOURCE beg=10347,len=29,col=36 s = new CharSet(); s.Fill(); #line default //END SOURCE } else SynErr(49); }
void Set( #line 218 "Coco.atg" //SOURCE beg=9237,len=13,col=5 out CharSet s #line default //END SOURCE ) { #line 218 "Coco.atg" //SOURCE beg=9268,len=12,col=36 CharSet s2; #line default //END SOURCE SimSet( #line 220 "Coco.atg" //SOURCE beg=9296,len=5,col=10 out s #line default //END SOURCE ); while (la.kind == 21 || la.kind == 22) { if (la.kind == 21) { Get(); SimSet( #line 221 "Coco.atg" //SOURCE beg=9319,len=6,col=16 out s2 #line default //END SOURCE ); #line 221 "Coco.atg" //SOURCE beg=9339,len=10,col=36 s.Or(s2); #line default //END SOURCE } else { Get(); SimSet( #line 222 "Coco.atg" //SOURCE beg=9368,len=6,col=16 out s2 #line default //END SOURCE ); #line 222 "Coco.atg" //SOURCE beg=9388,len=16,col=36 s.Subtract(s2); #line default //END SOURCE } } }
void ParseSet(out CharSet s) { CharSet s2; ParseSimSet(out s); while (la.kind == 22 || la.kind == 23) { if (la.kind == 22) { Get(); ParseSimSet(out s2); s.Or(s2); } else { Get(); ParseSimSet(out s2); s.Subtract(s2); } } }