Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Forums
  - IRC
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Foundation
  - Donate
- Resources
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - Visual D
  - Acknowledgments
  - D Style
  - Glossary
  - Sitemap

Search
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:
Walter Bright
License:
Boost License 1.0

Source: dinterpret.d

struct `CtfeStack`;
  The values of all CTFE variables
struct `CompiledCtfeFunction`;
  CTFE-object code for a single function
  Currently only counts the number of local variables in the function
void `ctfeCompile`(FuncDeclaration `fd`);
  Compile this function for CTFE. At present, this merely allocates variables.
Expression `ctfeInterpret`(Expression `e`);
  Entry point for CTFE. A compile-time result is required. Give an error if not possible.
  `e` must 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`(FuncDeclaration `fd`, InterState* `istate`, Expressions* `arguments`, Expression `thisarg`);
  Attempt to `interpret` a function given the `arguments`.

  Input: `istate` state for calling function (NULL if none) `arguments` function `arguments` `thisarg` 'this', if a needThis() function, NULL if not.

  Return result expression if successful, TOKcantexp if not, or CTFEExp if function returned void.
Expression `interpret`(Statement `s`, InterState* `istate`);
  Interpret the statement.
  Returns:
  NULL continue to next statement TOKcantexp cannot `interpret` statement at compile time !NULL expression from return statement, or thrown exception
Expression `interpret_length`(InterState* `istate`, Expression `earg`);
  Special Functions
bool `hasValue`(VarDeclaration `vd`);
  CTFE Sanity Checks

Copyright © 1999-2017 by the D Language Foundation | Page generated by Ddoc on Fri Sep 1 12:52:33 2017