public SimpleParser(ILexer lexer) { m_startRuleToken = new Token { TokenType = TokenType.NEW_RULE }; m_tree = new Node<string>(); m_lexer = lexer; m_consumed = new Stack<Token>(); m_err = new Queue<Error>(); // Setup rule pre-calling conditions m_rulePreHook = name => { if (m_tree.Value == null) { m_tree.Value = name; return m_tree; } var tempNode = m_tree; var newTopNode = m_tree.AddChild(name); m_tree = newTopNode; return tempNode; }; // Setup rule post-calling conditions m_rulePostHook = node => m_tree = node; }
private void button2_Click(object sender, EventArgs e) { var token = new Token { TokenType = (TokenType)Enum.Parse(typeof (TokenType), cmbTokens.SelectedItem.ToString()), Value = txtValue.Text }; m_tokens.Add(token); }
/// <summary> /// Get NextToken and verify if it exists /// </summary> /// <param name="name">Name of expected token</param> /// <param name="syntax">Syntax of expected token</param> /// <returns>True if new token found, otherwise false</returns> protected bool NextToken(String name, String syntax) { if (TokenStream.HasNext()) { CurrentToken = TokenStream.NextToken(); return true; } else { //Unexpected token throw new UnexpectedToken("Unexpected token found:", CurrentToken.GetValue().ToString(), CurrentToken.GetLine()); } }