//class-dec ::= 'class' <class-name> '{' <class-var-dec>* <sub-dec>* '}' private void ParseClass() { Match(new Token(TokenType.Keyword, "class")); Token className = NextToken(); if (className == null) { Expected("class name"); } if (className.Type != TokenType.Ident) { Expected("identifier"); } _currentClassName = className.Value; _codeGenerator.BeginClass(className.Value); Match(new Token(TokenType.Symbol, "{")); ParseClassVarDecls(); ParseSubDecls(); Match(new Token(TokenType.Symbol, "}")); _codeGenerator.EndClass(); _currentClassName = String.Empty; _classSymTable.Clear(); }