123456789101112131415161718192021222324252627282930313233 |
- namespace Spart.Parsers.Directives
- {
- using System;
- using Spart.Scanners;
- using Spart.Actions;
- using Spart.Parsers.NonTerminal;
- public class LexemeDirective : UnaryTerminalParser
- {
- public LexemeDirective(Parser parser) : base(parser)
- {
- }
- public override ParserMatch ParseMain(IScanner scanner)
- {
- // Remove leading whitespace
- Prims.Epsilon.Parse(scanner);
- bool isSkipping = scanner.IsSkipping;
- scanner.IsSkipping = false;
- ParserMatch m = this.Parser.Parse(scanner);
- scanner.IsSkipping = isSkipping;
- return m;
- }
-
- public override Parser Clone()
- {
- return base.Clone();
- }
- }
- }
|