コード例 #1
0
        public Lexer AddScanner(IMatch match, ScannerAction action)
        {
            var newScanners = this.Scanners.ToList();

            newScanners.Add(new Scanner(match, action));
            return(new Lexer(newScanners));
        }
コード例 #2
0
 internal Scanner(IMatch match, ScannerAction action)
 {
     this.Match  = match ?? throw new ArgumentNullException(nameof(match));
     this.Action = action ?? throw new ArgumentNullException(nameof(action));
 }
コード例 #3
0
 public Lexer AddScanner(string pattern, ScannerAction action)
 {
     return(this.AddScanner(new RegexMatch(pattern), action));
 }
コード例 #4
0
 public Lexer AddScanner(char fromValue, char toValue, ScannerAction action)
 {
     return(this.AddScanner(new RangeMatch(fromValue, toValue), action));
 }
コード例 #5
0
 public Lexer AddScanner(char value, ScannerAction action)
 {
     return(this.AddScanner(new CharMatch(value), action));
 }
コード例 #6
0
 public Lexer AddScanner(char[] values, ScannerAction action)
 {
     return(this.AddScanner(new CharArrayMatch(values), action));
 }
コード例 #7
0
 public void SetScanProductOrBoxProperties(ScannerAction scanAction)
 {
     //ScanProductOrBoxProperties = scanAction;
     //ScanListener.ScannerAction = (int)ScanProductOrBoxProperties;
 }