10.6. AST quasiquoting infrastructure

The QUOTE module provides quasiquotation support for AST construction. It allows building AST nodes using daslang syntax with $-prefixed splice points for inserting computed values, making macro writing more readable and less error-prone than manual AST construction.

All functions and symbols are in “quote” module, use require to get access to it.

require daslib/quote

10.6.1. Structures

CaptureEntryInitData

struct CaptureEntryInitData

LineInfoInitData

struct LineInfoInitData

EnumEntryInitData

struct EnumEntryInitData

AnnotationArgumentInitData

struct AnnotationArgumentInitData

FileInfoInitData

struct FileInfoInitData

10.6.2. Clone operations

10.6.2.1. clone

clone(a: AnnotationArgumentList; b: array<AnnotationArgumentInitData> )

def clone (var a: AnnotationArgumentList; b: array<AnnotationArgumentInitData>)

Arguments:
clone(a: dasvector`CaptureEntry; b: array<CaptureEntryInitData> )
clone(a: dasvector`EnumEntry; b: array<EnumEntryInitData> )
clone(a: dasvector`LineInfo; b: array<LineInfoInitData> )
clone(args: AnnotationList; nargs: array<AnnotationDeclaration?> )

clone_file_info(b: FileInfoInitData ): FileInfo?

def clone_file_info (b: FileInfoInitData) : FileInfo?

Arguments:
clone_line_info(b: LineInfoInitData ): LineInfo

def clone_line_info (var b: LineInfoInitData) : LineInfo

Arguments:
resolve_file_info(b: FileInfoInitData ): FileInfo?

def resolve_file_info (b: FileInfoInitData) : FileInfo?

Arguments:

10.6.3. Conversion

cvt_to_mks(args: auto ): MakeStruct?

def cvt_to_mks (var args: auto) : MakeStruct?

Arguments:
  • args : auto

make_alias_type_decl(name: string ): TypeDecl?

def make_alias_type_decl (name: string) : TypeDecl?

Arguments:
  • name : string