diff -r a8735148dcf0 -r e9d804821c48 src/Parser.h --- a/src/Parser.h Mon Jul 30 22:30:38 2012 -0700 +++ b/src/Parser.h Wed Aug 01 22:32:59 2012 -0700 @@ -39,16 +39,23 @@ private: void redeclarationError(BoundName *name); + bool peek(TokenKind kind); bool match(TokenKind kind); bool expect(TokenKind kind); bool matchSemicolon(); Scope *enterScope(Scope::Kind kind); + VariableDeclaration *variableDeclaration(TokenKind kind); bool matchName(String **name, TokenKind kind = TOK_NAME); + + NameProxy *bind(Handle name); + BoundName *bindType(Handle string); + + ExpressionList *dimensions(); String *expectName(); - NameProxy *bind(Handle name); + Expression *primitive(); Expression *call(Expression *callee); Expression *index(Expression *left); @@ -81,6 +88,8 @@ Statement *globalStatement(); Statement *returnStatement(); + bool setupIntrinsics(); + public: Parser(Zone *zone, CompileContext &cc, const char *stream, size_t length);