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.
ddmd.dinterpret
Compiler implementation of the
D programming language.
Authors:
License:
Source: dinterpret.d
- struct
CtfeStack; - The values of all CTFE variables
- struct
CompiledCtfeFunction; - CTFE-object code for a single functionCurrently only counts the number of local variables in the function
- void
ctfeCompile(FuncDeclarationfd); - Compile this function for CTFE. At present, this merely allocates variables.
- Expression
ctfeInterpret(Expressione); - Entry point for CTFE. A compile-time result is required. Give an error if not possible.
emust be semantically valid expression. In other words, it should not contain any ErrorExps in it. But, CTFE interpretation will cross over functions and may invoke a function that contains ErrorStatement in its body. If that, the "CTFE failed because of previous errors" error is raised. - Expression
interpret(FuncDeclarationfd, InterState*istate, Expressions*arguments, Expressionthisarg); - Attempt to
interpreta function given thearguments.Input:
Return result expression if successful, TOKcantexp if not, or CTFEExp if function returned void.istatestate for calling function (NULL if none)argumentsfunctionargumentsthisarg'this', if a needThis() function, NULL if not. - Expression
interpret(Statements, InterState*istate); - Interpret the statement.Returns:NULL continue to next statement TOKcantexp cannot
interpretstatement at compile time !NULL expression from return statement, or thrown exception - Expression
interpret_length(InterState*istate, Expressionearg); - Special Functions
- bool
hasValue(VarDeclarationvd); - CTFE Sanity Checks
Copyright © 1999-2017 by the D Language Foundation | Page generated by
Ddoc on (no date time)