Declarative and deterministic parsing of AspectJ

Loading...
Thumbnail Image

View/Download File

Persistent link to this item

Statistics
View Statistics

Journal Title

Journal ISSN

Volume Title

Title

Declarative and deterministic parsing of AspectJ

Alternative title

Published Date

2009-03-18

Publisher

Type

Report

Abstract

AspectJ, a language that provides aspect constructs in Java, has historically proven difficult to parse using traditional methods. The AspectJ Bench Compiler (abc) uses a traditional LALR(1) parser, but must use a custom-built, non-declarative scanner that switches modes based on whether the parse is in an aspect or not. This allows the parser to reserve different sets of keywords against the identifiers. More recently, Visser et al. have devised a declarative parser for AspectJ in their nondeterministic scannerless-GLR framework --- although they have to add a new feature, grammar mix-ins, to handle the problem of the different sets of keywords. We have adapted the LALR(1) grammar used in abc to extend the Java grammar in our ableJ framework. As it happens, with a context-aware scanner, the abc version of AspectJ can be parsed deterministically and declaratively, due to the fact that a context-aware scanner can tell whether it is scanning within an aspect or not.

Keywords

Description

Related to

Replaces

License

Series/Report Number

Technical Report; 09-007

Funding information

Isbn identifier

Doi identifier

Previously Published Citation

Other identifiers

Suggested citation

Schwerdfeger, August. (2009). Declarative and deterministic parsing of AspectJ. Retrieved from the University Digital Conservancy, https://hdl.handle.net/11299/215794.

Content distributed via the University Digital Conservancy may be subject to additional license and use restrictions applied by the depositor. By using these files, users agree to the Terms of Use. Materials in the UDC may contain content that is disturbing and/or harmful. For more information, please see our statement on harmful content in digital repositories.