Report a bug
		
				If you spot a problem with this page, click here to create a Bugzilla issue.
		
			Improve this page
		
			Quickly fork, edit online, and submit a pull request for this page.
			Requires a signed-in GitHub account. This works well for small changes.
			If you'd like to make larger changes you may want to consider using
			a local clone.
		
	dmd.parse
Takes a token stream from the lexer, and parses it into an abstract syntax tree.
Specification D Grammar
Authors: 
License: 
Source parse.d
Documentation https://dlang.org/phobos/dmd_parse.html
- classParser(AST, Lexer = dmd.lexer.Lexer): Lexer;
- 
- this(Locloc, AST.Module_module, const(char)[]input, booldoDocComment, ErrorSinkerrorSink, const CompileEnv*compileEnv, const booldoUnittests) scope;
- Use this constructor for string mixins.Input loc = location in source file of mixin 
- this(AST.Module_module, const(char)[]input, booldoDocComment, ErrorSinkerrorSink, const CompileEnv*compileEnv, const booldoUnittests) scope;
- Main Parser constructor.
- AST.Dsymbols*parseModule();
- Parse a module, i.e. the optional module x.y.z declaration and all declarations found in the current file.Returns:the list of declarations or an empty list in case of malformed declarations, the module declaration will be stored as this.md if found
- final boolparseModuleDeclaration();
- Parse the optional module declarationReturns:false if a malformed module declaration was found
- final AST.Dsymbols*parseModuleContent();
- Parse the content of a module, i.e. all declarations found until the end of file.Returns:the list of declarations or an empty list in case of malformed declarations
- AST.Dsymbols*parseDeclDefs(intonce, AST.Dsymbol*pLastDecl= null, PrefixAttributes!AST*pAttrs= null);
- Parse declarations and definitionsParameters:int once!=0 means parse exactly one decl or def AST.Dsymbol* pLastDeclset to last decl or def parsed PrefixAttributes!AST* pAttrskeep track of attributes Returns:array of declared symbols
- RootObjectparseTypeOrAssignExp(TOKendtoken= TOK.reserved);
- Parse a Type or an ExpressionReturns:RootObject representing the AST
- AST.ParameterparseAssignCondition();
- Parse an assignment condition for if, switch or while statements.Returns:The variable that is declared inside the condition
- AST.StatementparseStatement(intflags, const(char)**endPtr= null, Loc*pEndloc= null);
- Input flags PSxxxx - Output pEndloc if { ... statements ... }, store location of closing brace, otherwise loc of last token of statement 
- AST.StatementparseAsm(boolendOfLine);
- Parse inline assembler block. Enters with token on the asm. https://dlang.org/spec/iasm.htmlAsmStatement asm FunctionAttributes(opt) { AsmInstructionListopt } AsmInstructionList AsmInstruction ; AsmInstruction ; AsmInstruction Parameters:bool endOfLinetrue if EOL means end of asm statement Returns:inline assembler block as a Statement
- voidcheck(Locloc, TOKvalue);
- Issue error if the current token is notvalue, advance to next token.Parameters:Loc loclocation for error message TOK valuetoken value to compare with 
- voidcheck(TOKvalue);
- Issue error if the current token is notvalue, advance to next token.Parameters:TOK valuetoken value to compare with 
- voidcheck(TOKvalue, const(char)*string);
- Issue error if the current token is notvalue, advance to next token.Parameters:TOK valuetoken value to compare with const(char)* stringfor error message 
- enumNeedDeclaratorId;
- boolskipParens(Token*t, Token**pt);
- Skip parentheses.Parameters:Token* ton opening ( Token** pt*pt is set to token past ')' on true Returns:true successful false some parsing error
- AST.ExpressionparsePrimaryExp();
- Expression Parser
- static STCisBuiltinAtAttribute(Identifierident);
- Recognize builtin @ attributesParameters:Identifier identidentifier Returns:storage class for attribute, 0 if not
 
- immutable PREC[EXP.max + 1]precedence;
- Set operator precedence for each operator.Used by hdrgen
- structParsedLinkage(AST);
- The result of the ParseLinkage function- LINKlink;
- What linkage was specified
- CPPMANGLEcppmangle;
- If extern(C++, class|struct), contains the class|struct
- AST.Identifiers*idents;
- If extern(C++, some.identifier), will be the identifiers
- AST.Expressions*identExps;
- If `extern(C++, (some_tuple_expression)|"string"), will be the expressions
 
Copyright © 1999-2025 by the D Language Foundation | Page generated by
Ddoc on Mon Mar 31 10:28:00 2025