public override void Parse(TokenStream Lexer, List <SyntaxNode> Res) { var Right = Factor_.Parse(Lexer); Precedence Prec; while ((Prec = NextOperator(Lexer)) != null) { Right = DoShift(Lexer, Right, Prec.Value); } Res.Add(Right); }
public override void Parse(TokenStream Lexer, List <SyntaxNode> Res) { while (StoneParser_.Match(Lexer)) { var T = StoneParser_.Parse(Lexer); if (!(T is SyntaxCommandNode Cmd) || Cmd.GetChildrenNum() > 0) { Res.Add(T); } if (OnlyOnce_) { break; } } }
public SyntaxNode Parse(TokenStream Lexer) { return(Expr_.Parse(Lexer)); }
public override void Parse(TokenStream Lexer, List <SyntaxNode> Res) { Res.Add(StoneParser_.Parse(Lexer)); }