Пример #1
0
 public QuantifierEntry(TokenPrimitiveEntry primitiveEntry, QuantifierKind kind, QuantifierMode mode)
 {
     PrimitiveEntry = primitiveEntry;
     Kind           = kind;
     Mode           = mode;
     Range          = QuantifierHelper.GetRange(kind);
 }
Пример #2
0
 public TokenInterQuantifier(TokenInterPrimitiveEntry primitiveEntry, Interval <int> range, QuantifierMode mode)
 {
     PrimitiveEntry = primitiveEntry;
     Kind           = QuantifierHelper.GetKind(range);
     Range          = range;
     Mode           = mode;
 }
Пример #3
0
 public TokenInterQuantifier(TokenInterPrimitiveEntry primitiveEntry, QuantifierKind kind, QuantifierMode mode = QuantifierMode.Greedy)
 {
     PrimitiveEntry = primitiveEntry;
     Range          = QuantifierHelper.GetRange(kind);
     Kind           = kind;
     Mode           = mode;
 }
Пример #4
0
 public ParserQuantifierEntry(ParserPrimitiveEntry primitiveEntry, QuantifierKind kind, QuantifierMode mode)
 {
     PrimitiveEntry = primitiveEntry;
     Kind           = kind;
     Range          = QuantifierHelper.GetRange(kind);
     Mode           = mode;
 }
Пример #5
0
 private QuantifierEntry(PrimitiveEntry primitiveEntry, QuantifierKind kind, QuantifierMode mode, int maximum, int minimum)
 {
     Kind           = kind;
     Mode           = mode;
     PrimitiveEntry = primitiveEntry;
     Maximum        = maximum;
     Minimum        = minimum;
 }
Пример #6
0
            public TokenInterQuantifier OneOrMore(QuantifierMode mode = QuantifierMode.Greedy)
            {
                if (Mode == mode && mode == QuantifierMode.Greedy && QuantifierHelper.CanCollapse(Kind, QuantifierKind.OneOrMore))
                {
                    return(new TokenInterQuantifier(PrimitiveEntry, QuantifierHelper.Collapse(Kind, QuantifierKind.OneOrMore), Mode));
                }

                return(new TokenInterQuantifier(AsFragment(), QuantifierKind.OneOrMore, mode));
            }
Пример #7
0
            public QuantifierEntry(PrimitiveEntry primitiveEntry, Interval <int> range, QuantifierMode mode)
            {
                PrimitiveEntry = primitiveEntry;
                Kind           = QuantifierHelper.GetKind(range);
                Mode           = mode;

                Minimum = range.Minimum;
                Maximum = range.Maximum;
            }
Пример #8
0
            public ParserQuantifierEntry ZeroOrMore(QuantifierMode mode = QuantifierMode.Greedy)
            {
                if (Mode == mode && mode == QuantifierMode.Greedy && QuantifierHelper.CanCollapse(Kind, QuantifierKind.ZeroOrMore))
                {
                    return(new ParserQuantifierEntry(PrimitiveEntry, QuantifierHelper.Collapse(Kind, QuantifierKind.ZeroOrMore), Mode));
                }

                return(new ParserQuantifierEntry(AsFragment(), QuantifierKind.ZeroOrMore, mode));
            }
Пример #9
0
            private ParserProductionBuilder CreateQuantifier(QuantifierKind kind, QuantifierMode mode)
            {
                var parserRule = new ParserRule
                {
                    IsInline = true
                };

                parserRule.Productions.Add(new ParserProduction(CreateArray()));

                return(new ParserProductionBuilder(new ParserQuantifierEntry(new ParserRuleEntry(parserRule), kind, mode)));
            }
Пример #10
0
            public QuantifierEntry(PrimitiveEntry primitiveEntry, QuantifierKind kind, QuantifierMode mode)
            {
                PrimitiveEntry = primitiveEntry;
                Kind           = kind;
                Mode           = mode;

                var range = QuantifierHelper.GetRange(kind);

                Minimum = range.Minimum;
                Maximum = range.Maximum;
            }
Пример #11
0
 public QuantifierEntry OneOrMore(QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new QuantifierEntry(new TokenFragmentEntry(new TokenFragment(this)), QuantifierKind.OneOrMore, mode));
 }
Пример #12
0
 public ParserQuantifierEntry Between(int from, int to, QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new ParserQuantifierEntry(AsFragment(), QuantifierHelper.Between(from, to), mode));
 }
Пример #13
0
 public QuantifierEntry Between(int from, int to, QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new QuantifierEntry(new TokenFragmentEntry(this), QuantifierHelper.Between(from, to), mode));
 }
Пример #14
0
 public QuantifierEntry ZeroOrOne(QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new QuantifierEntry(new TokenFragmentEntry(new TokenFragment(this)), QuantifierKind.ZeroOrOne, mode));
 }
Пример #15
0
 public ParserProductionBuilder OneOrMore(QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(CreateQuantifier(QuantifierKind.OneOrMore, mode));
 }
Пример #16
0
 public TokenInterQuantifier Exact(int count, QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new TokenInterQuantifier(AsFragment(), QuantifierHelper.Exact(count), mode));
 }
Пример #17
0
 public ParserQuantifierEntry ZeroOrOne(QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new ParserQuantifierEntry(AsFragment(), QuantifierKind.ZeroOrOne, mode));
 }
Пример #18
0
 public QuantifierEntry Exact(int count, QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new QuantifierEntry(new TokenFragmentEntry(this), QuantifierHelper.Exact(count), mode));
 }
Пример #19
0
 public ParserQuantifierEntry Exact(int count, QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new ParserQuantifierEntry(AsFragment(), QuantifierHelper.Exact(count), mode));
 }
Пример #20
0
 public ParserQuantifierEntry ZeroOrMore(QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new ParserQuantifierEntry(this, QuantifierKind.ZeroOrMore, mode));
 }
Пример #21
0
 public ParserQuantifierEntry AtLeast(int count, QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new ParserQuantifierEntry(this, QuantifierHelper.AtLeast(count), mode));
 }
Пример #22
0
 public QuantifierEntry ZeroOrOne(QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new QuantifierEntry(this, QuantifierKind.ZeroOrOne, mode));
 }
Пример #23
0
 public QuantifierEntry OneOrMore(QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new QuantifierEntry(this, QuantifierKind.OneOrMore, mode));
 }
Пример #24
0
 public ParserQuantifierEntry OneOrMore(QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new ParserQuantifierEntry(AsFragment(), QuantifierKind.OneOrMore, mode));
 }
Пример #25
0
 public ParserQuantifierEntry OneOrMore(QuantifierMode quantifierMode = QuantifierMode.Greedy)
 {
     return(new ParserQuantifierEntry(new ParserRuleEntry(this), QuantifierKind.OneOrMore, quantifierMode));
 }
Пример #26
0
                public ParserQuantifierEntry(Grammar <TToken> .ParserQuantifierEntry grammarEntry, PrimitiveEntry primitiveEntry, Interval <int> range, QuantifierMode mode) : base(primitiveEntry, range, mode)
                {
                    var name = EnsureName(grammarEntry);

                    if (name == null)
                    {
                        return;
                    }

                    var primitiveEntryData = ((IParserEntry)PrimitiveEntry).ParserEntryData;

                    primitiveEntryData.Name = name;
                }
Пример #27
0
 public TokenInterQuantifier Between(int from, int to, QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new TokenInterQuantifier(AsFragment(), QuantifierHelper.Between(from, to), mode));
 }
Пример #28
0
 public TokenInterQuantifier ZeroOrOne(QuantifierMode mode = QuantifierMode.Greedy)
 {
     return(new TokenInterQuantifier(AsFragment(), QuantifierKind.ZeroOrOne, mode));
 }
Пример #29
0
 public ParserQuantifierEntry ZeroOrOne(QuantifierMode quantifierMode = QuantifierMode.Greedy)
 {
     return(new ParserQuantifierEntry(new ParserRuleEntry(this), QuantifierKind.ZeroOrOne, quantifierMode));
 }