public Lexer AddScanner(IMatch match, ScannerAction action) { var newScanners = this.Scanners.ToList(); newScanners.Add(new Scanner(match, action)); return(new Lexer(newScanners)); }
internal Scanner(IMatch match, ScannerAction action) { this.Match = match ?? throw new ArgumentNullException(nameof(match)); this.Action = action ?? throw new ArgumentNullException(nameof(action)); }
public Lexer AddScanner(string pattern, ScannerAction action) { return(this.AddScanner(new RegexMatch(pattern), action)); }
public Lexer AddScanner(char fromValue, char toValue, ScannerAction action) { return(this.AddScanner(new RangeMatch(fromValue, toValue), action)); }
public Lexer AddScanner(char value, ScannerAction action) { return(this.AddScanner(new CharMatch(value), action)); }
public Lexer AddScanner(char[] values, ScannerAction action) { return(this.AddScanner(new CharArrayMatch(values), action)); }
public void SetScanProductOrBoxProperties(ScannerAction scanAction) { //ScanProductOrBoxProperties = scanAction; //ScanListener.ScannerAction = (int)ScanProductOrBoxProperties; }