...

/

Extension of Java Compiler With JastAdd

Extension of Java Compiler With JastAdd

Learn about JastAdd syntax and discuss the extension of the Java compiler with JastAdd.

Syntax of JastAdd

The syntax involves defining aspects, introducing attributes, and specifying how these aspects interact with the existing codebase. Below is an overview of the key syntax elements:

Aspect definition

An aspect in JastAdd is defined using the aspect keyword and stored in a jrag file format. It encapsulates specific functionalities and modifications to the compiler:

aspect MyAspect {
// Aspect-specific code and declarations
}

Attribute declaration

Attributes in JastAdd are declared using the syn (synthesized) or inh (inherited) keywords:

aspect MyAspect {
syn String MyAttribute(); // Syntax for synthesized attributes
inh int InheritedAttribute(); // Syntax for inherited attributes
}

Synthesized and inherited attributes are used to propagate information in different directions within the abstract syntax tree (AST) structure.

  1. Synthesized attributes (syn ...