Mercurial > projects > ldc
view dmd/parse.h @ 1607:207a8a438dea
Merge DMD r253: refactor: Argument => Parameter
---
dmd/arrayop.c | 30 ++++----
dmd/arraytypes.h | 2 +-
dmd/class.c | 8 +-
dmd/declaration.c | 10 ++--
dmd/declaration.h | 16 ++--
dmd/doc.c | 12 ++--
dmd/dsymbol.c | 4 +-
dmd/expression.c | 48 +++++++-------
dmd/expression.h | 32 +++++-----
dmd/func.c | 78 +++++++++++-----------
dmd/init.c | 2 +-
dmd/interpret.c | 8 +-
dmd/mtype.c | 190 ++++++++++++++++++++++++++--------------------------
dmd/mtype.h | 32 +++++-----
dmd/opover.c | 34 +++++-----
dmd/parse.c | 40 ++++++------
dmd/parse.h | 2 +-
dmd/statement.c | 90 +++++++++++++-------------
dmd/statement.h | 14 ++--
dmd/struct.c | 8 +-
dmd/template.c | 30 ++++----
gen/functions.cpp | 10 ++--
gen/functions.h | 2 +-
gen/tocall.cpp | 10 ++--
gen/typinf.cpp | 6 +-
25 files changed, 359 insertions(+), 359 deletions(-)
author | Leandro Lucarella <llucax@gmail.com> |
---|---|
date | Wed, 06 Jan 2010 15:18:20 -0300 |
parents | 1b24e9c7cc26 |
children |
line wrap: on
line source
// Compiler implementation of the D programming language // Copyright (c) 1999-2009 by Digital Mars // All Rights Reserved // written by Walter Bright // http://www.digitalmars.com // License for redistribution is by either the Artistic License // in artistic.txt, or the GNU General Public License in gnu.txt. // See the included readme.txt for details. #ifndef DMD_PARSE_H #define DMD_PARSE_H #ifdef __DMC__ #pragma once #endif /* __DMC__ */ #include "arraytypes.h" #include "lexer.h" #include "enum.h" struct Type; struct TypeQualified; struct Expression; struct Declaration; struct Statement; struct Import; struct Initializer; struct FuncDeclaration; struct CtorDeclaration; struct PostBlitDeclaration; struct DtorDeclaration; struct StaticCtorDeclaration; struct StaticDtorDeclaration; struct ConditionalDeclaration; struct InvariantDeclaration; struct UnitTestDeclaration; struct NewDeclaration; struct DeleteDeclaration; struct Condition; struct Module; struct ModuleDeclaration; struct TemplateDeclaration; struct TemplateInstance; struct StaticAssert; /************************************ * These control how parseStatement() works. */ enum ParseStatementFlags { PSsemi = 1, // empty ';' statements are allowed PSscope = 2, // start a new scope PScurly = 4, // { } statement is required PScurlyscope = 8, // { } starts a new scope }; struct Parser : Lexer { ModuleDeclaration *md; enum LINK linkage; Loc endloc; // set to location of last right curly int inBrackets; // inside [] of array index or slice Parser(Module *module, unsigned char *base, unsigned length, int doDocComment); Array *parseModule(); Array *parseDeclDefs(int once); Array *parseAutoDeclarations(StorageClass storageClass, unsigned char *comment); Array *parseBlock(); void composeStorageClass(StorageClass stc); Expression *parseConstraint(); TemplateDeclaration *parseTemplateDeclaration(); TemplateParameters *parseTemplateParameterList(int flag = 0); Dsymbol *parseMixin(); Objects *parseTemplateArgumentList(); Objects *parseTemplateArgumentList2(); Objects *parseTemplateArgument(); StaticAssert *parseStaticAssert(); TypeQualified *parseTypeof(); enum LINK parseLinkage(); Condition *parseDebugCondition(); Condition *parseVersionCondition(); Condition *parseStaticIfCondition(); Dsymbol *parseCtor(); PostBlitDeclaration *parsePostBlit(); DtorDeclaration *parseDtor(); StaticCtorDeclaration *parseStaticCtor(); StaticDtorDeclaration *parseStaticDtor(); InvariantDeclaration *parseInvariant(); UnitTestDeclaration *parseUnitTest(); NewDeclaration *parseNew(); DeleteDeclaration *parseDelete(); Parameters *parseParameters(int *pvarargs); EnumDeclaration *parseEnum(); Dsymbol *parseAggregate(); BaseClasses *parseBaseClasses(); Import *parseImport(Array *decldefs, int isstatic); Type *parseType(Identifier **pident = NULL, TemplateParameters **tpl = NULL); Type *parseBasicType(); Type *parseBasicType2(Type *t); Type *parseDeclarator(Type *t, Identifier **pident, TemplateParameters **tpl = NULL); Array *parseDeclarations(); void parseContracts(FuncDeclaration *f); Statement *parseStatement(int flags); Initializer *parseInitializer(); Expression *parseDefaultInitExp(); void check(Loc loc, enum TOK value); void check(enum TOK value); void check(enum TOK value, const char *string); int isDeclaration(Token *t, int needId, enum TOK endtok, Token **pt); int isBasicType(Token **pt); int isDeclarator(Token **pt, int *haveId, enum TOK endtok); int isParameters(Token **pt); int isExpression(Token **pt); int isTemplateInstance(Token *t, Token **pt); int skipParens(Token *t, Token **pt); Expression *parseExpression(); Expression *parsePrimaryExp(); Expression *parseUnaryExp(); Expression *parsePostExp(Expression *e); Expression *parseMulExp(); Expression *parseAddExp(); Expression *parseShiftExp(); Expression *parseRelExp(); Expression *parseEqualExp(); Expression *parseCmpExp(); Expression *parseAndExp(); Expression *parseXorExp(); Expression *parseOrExp(); Expression *parseAndAndExp(); Expression *parseOrOrExp(); Expression *parseCondExp(); Expression *parseAssignExp(); Expressions *parseArguments(); Expression *parseNewExp(Expression *thisexp); void addComment(Dsymbol *s, unsigned char *blockComment); }; #endif /* DMD_PARSE_H */