Exemple #1
0
        public CSetSreExpr Difference(CSetSreExpr x, CSetSreExpr[] y)
        {
            IntSet cset = x.Node.Characters;

            foreach (var excluded in y)
            {
                cset = cset.Except(excluded.Node.Characters);
            }

            return(CSet(cset));
        }
Exemple #2
0
 public SreExpr CSet(CSetSreExpr cset)
 {
     return(new SreExpr {
         Node = cset.Node
     });
 }
Exemple #3
0
 public SreExpr Lookahead(CSetSreExpr cset)
 {
     return(new SreExpr {
         Node = new LookaheadNode(cset.Node.Characters)
     });
 }
Exemple #4
0
 public SreExpr Lookback(CSetSreExpr cset)
 {
     return new SreExpr { Node = new LookbackNode(cset.Node.Characters) };
 }
Exemple #5
0
        public CSetSreExpr Intersection(CSetSreExpr[] inner)
        {
            IntSet cset = IntSet.All;
            foreach (var included in inner)
            {
                cset = cset.Intersect(included.Node.Characters);
            }

            return CSet(cset);
        }
Exemple #6
0
        public CSetSreExpr Difference(CSetSreExpr x, CSetSreExpr[] y)
        {
            IntSet cset = x.Node.Characters;
            foreach (var excluded in y)
            {
                cset = cset.Except(excluded.Node.Characters);
            }

            return CSet(cset);
        }
Exemple #7
0
 public SreExpr CSet(CSetSreExpr cset)
 {
     return new SreExpr { Node = cset.Node };
 }
Exemple #8
0
 public CSetSreExpr ComplementOfUnion(CSetSreExpr[] inner)
 {
     return new CSetSreExpr { Node = CharSetNode.Union(inner.Select(expr => expr.Node)).Complement() };
 }