Module dev.civl.abc

Package dev.civl.abc.ast.IF


package dev.civl.abc.ast.IF

Module ast defines an Abstract Syntax Tree representation of a program, the AST. This module is large and is therefore divided into several submodules. Each submodule has its own interface. This package proper contains the module entry point, ASTs and an exception class specific to ASTs.

This module is decomposed into the following submodules:
  • main: this package, declaring the interfaces AST and ASTFactory.
  • ast.value
    • responsibilities: representation of concrete value, such as characters, integers, floating point values
    • interface: dev.civl.abc.ast.value.IF
    • entry point: Values
  • ast.type
  • ast.entity
    • responsibilities: representation of abstract program entities which can be named by an identifier, including variables, functions, labels, scopes, structures, unions, enumerations, enumerators, and typedefs
    • interface: dev.civl.abc.ast.entity.IF
    • entry point: Entities
  • ast.conversion
    • responsibilities: representation of C's implicit conversions, such as the conversion of an array to a pointer to the first element of the array, and so on
    • interface: dev.civl.abc.ast.conversion.IF
    • entry point: Conversions
  • ast.node
  • Class
    Description
    A representation of a program as an abstract syntax tree.
    Runtime exception thrown when something goes wrong with the AST.
    An ASTFactory is used to create all objects associated to an AST.
    Factory class providing static method to produce a new ASTFactory.
     
     
    The class collects together the standard type definitions, e.g., size_t, ptrdiff_t, etc.