Takes a token stream from the lexer, and parses it into an abstract syntax tree.

Specification: D Grammar


Walter Bright

Source: parse.d

  • Declaration

    immutable PREC[TOK.max_] precedence;

    Set operator precedence for each operator.


    Used by hdrgen

  • Declaration

    class Parser(AST): Lexer;

    • Declaration

      this(ref const Loc loc, AST.Module _module, const(char)[] input, bool doDocComment);

      Use this constructor for string mixins.

      Input: loc location in source file of mixin

    • Declaration

      RootObject parseTypeOrAssignExp(TOK endtoken = TOK.reserved);

      Parse a Type or an Expression

      Return Value

      RootObject representing the AST

    • Declaration

      AST.Statement parseStatement(int flags, 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

    • Declaration

      AST.Expression parsePrimaryExp();

      Expression Parser

    • Declaration

      static StorageClass isBuiltinAtAttribute(Identifier ident);

      Recognize builtin @ attributes


      Identifier ident


      Return Value

      storage class for attribute, 0 if not