Exemplo n.º 1
0
        //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();
        }