public MainParser Setup(ParserElement parent, ParserElement conditional, Func <ParserValues, dynamic> getResult) { Setup(parent, conditional); this.getResult = getResult; return(this); }
public ParserElement Setup(ParserElement parent, ParserElement conditional = null) { this.parent = parent; if (conditional != null) { this.conditional = conditional; } return(this); }
public ParserElement New(string id, Func <ParserValues, dynamic> getResult = null, ParserElement conditional = null) { return(parsers[id] = new MainParser().Setup(this, conditional, getResult)); }
T create <T>() where T : ParserElement, new() { child = new T(); return((T)child); }
public ParserElement Try(ParserElement conditional, Func <ParserElement> onWork) => child = new TryElement(conditional, onWork);
public ParserElement TokenAny(string storeOn) => child = new TokenElement(TokenConditional.Any).Config(null, default(TokenType), storeOn);
public ParserElement TokenAny() => child = new TokenElement(TokenConditional.Any).Config(null, default(TokenType), null);
public ParserElement Token(TokenType type, string storeOn) => child = new TokenElement(TokenConditional.Type).Config(null, type, storeOn);
public ParserElement Token(TokenType type) => child = new TokenElement(TokenConditional.Type).Config(null, type, null);
public ParserElement Token(string text) => child = new TokenElement(TokenConditional.Text).Config(text, TokenType.None, null);
public dynamic GetResult() => getResult(ParserElement.GetValues());
public TryElement(ParserElement conditional, Func <ParserElement> onWork) { Setup(null, conditional); this.onWork = onWork; }