public ITree Analyze() { Errors.Clear(); _la = null; Get(); var p = C__(); Expect(Terminals.EOF); if (Errors.Count == 0) { var tree = new Tree(); tree.AddRoot(p); return tree; } return null; }
private Symbol Expect(Symbol n) { Symbol r = null; if (_la == n) { r = _la; Get(); } else SynErr(Terminals.OrderNums[n]); return r; }
void Get() { _la = _scanner.Scan(); }
public void AddRightPart(Symbol symbol) { Right.Add(symbol); }