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.dsymbolsem
Does the semantic 1 pass on the AST, which looks at symbol declarations but not initializers
or function bodies.
Authors:
License:
Source dsymbolsem.d
Documentation https://dlang.org/phobos/dmd_dsymbolsem.html
- void
dsymbolSemantic(Dsymboldsym, Scope*sc); - Does semantic analysis on the public face of declarations.
- AlignDeclaration
getAlignment(AlignDeclarationad, Scope*sc); - Determine the numerical value of the AlignmentDeclarationParameters:
AlignDeclaration adAlignmentDeclaration Scope* sccontext Returns:ad with alignment value determined - Expression
resolveAliasThis(Scope*sc, Expressione, boolgag= false, boolfindOnly= false); - Find the alias this symbol of e's type.Parameters:
Scope* sccontext Expression eexpression forming the this bool gagdo not print errors, return null instead bool findOnlydon't do further processing like resolving properties, i.e. just return plain dotExp() result. Returns:Expression that ise.aliasthis - void
addEnumMembersToSymtab(EnumDeclarationed, Scope*sc, ScopeDsymbolsds); - Add members of EnumDeclaration to the symbol table(s).Parameters:
EnumDeclaration edEnumDeclaration Scope* sccontext of edScopeDsymbol sdssymbol table that edresides in - bool
determineFields(AggregateDeclarationad); - Find all instance fields in
ad, then push them into fields.Runs semantic() for all instance field variables, but also the field types can remain yet not resolved forward references, except direct recursive definitions. After the process sizeok is set to Sizeok.fwd.Parameters:AggregateDeclaration adthe AggregateDeclaration to examine Returns:false if any errors occur. - PINLINE
evalPragmaInline(Locloc, Scope*sc, Expressions*args); - Interpret a pragma(inline, x)Parameters:
Loc loclocation for error messages Scope* scscope for evaluation of argument Expressions* argspragma arguments Returns:corresponding PINLINE state - Loc
adjustLocForMixin(const(char)[]input, const ref Locloc, ref OutputmixinOut); - Set up loc for a parse of a mixin. Append the input text to the mixin.Parameters:
const(char)[] inputmixin text Loc loclocation to adjust Output mixinOutsink for mixin text data Returns:adjusted loc suitable for Parser - void
checkPrintfScanfSignature(FuncDeclarationfuncdecl, TypeFunctionf, Scope*sc); - Check signature of pragma(printf) function, print error if invalid.printf/scanf-like functions must be of the form: extern (C/C++) T printf([parameters...], const(char)* format, ...); or: extern (C/C++) T vprintf([parameters...], const(char)* format, va_list);Parameters:
FuncDeclaration funcdeclfunction to check TypeFunction ffunction type Scope* scscope - Dsymbol
search(Dsymbold, const ref Locloc, Identifierident, SearchOptFlagsflags= SearchOpt.all); - Search for ident as member of d.Parameters:
Dsymbol ddsymbol where ident is searched for Loc loclocation to print for error messages Identifier identidentifier to search for SearchOptFlags flagssearch options Returns:null if not found - void
setScope(Dsymbold, Scope*sc); - Set scope for future semantic analysis so we can deal better with forward references.Parameters:
Dsymbol ddsymbol for which the scope is set Scope* scscope that is used to set the value
Copyright © 1999-2024 by the D Language Foundation | Page generated by
Ddoc on (no date time)