Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Incremental analysis of real programming languages
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Disambiguation Filters for Scannerless Generalized LR Parsers
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Forwarding in Attribute Grammars for Modular Language Design
CC '02 Proceedings of the 11th International Conference on Compiler Construction
SCR*: A Toolset for Specifying and Analyzing Software Requirements
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
Parsing expression grammars: a recognition-based syntactic foundation
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Better extensibility through modular syntax
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
XGLR: an algorithm for ambiguity in programming languages
Science of Computer Programming - The fourth workshop on language descriptions, tools, and applications (LDTA'04)
Flexible and extensible notations for modeling languages
FASE'07 Proceedings of the 10th international conference on Fundamental approaches to software engineering
Attribute grammar-based language extensions for java
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Packrat parsers can support left recursion
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Designing Syntax Embeddings and Assimilations for Language Libraries
Models in Software Engineering
Adding Dimension Analysis to Java as a Composable Language Extension
Generative and Transformational Techniques in Software Engineering II
Software Language Engineering
Faster Scannerless GLR Parsing
CC '09 Proceedings of the 18th International Conference on Compiler Construction: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Verifiable composition of deterministic grammars
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Silver: An extensible attribute grammar system
Science of Computer Programming
Domain-specific language integration with compile-time parser generator library
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
MetaLexer: a modular lexical specification language
Proceedings of the tenth international conference on Aspect-oriented software development
Integrating OCL and textual modelling languages
MODELS'10 Proceedings of the 2010 international conference on Models in software engineering
Building extensible specifications and implementations of Promela with AbleP
Proceedings of the 18th international SPIN conference on Model checking software
Verifiable parse table composition for deterministic parsing
SLE'09 Proceedings of the Second international conference on Software Language Engineering
A role-based approach towards modular language engineering
SLE'09 Proceedings of the Second international conference on Software Language Engineering
Ambiguity detection: scaling to scannerless
SLE'11 Proceedings of the 4th international conference on Software Language Engineering
Creating and using domain-specific language features
Proceedings of the First Workshop on the Globalization of Domain Specific Languages
HPar: A practical parallel parser for HTML--taming HTML complexities for parallel parsing
ACM Transactions on Architecture and Code Optimization (TACO)
Hi-index | 0.00 |
This paper introduces new parsing and context-aware scanning algorithms in which the scanner uses contextual information to disambiguate lexical syntax. The parser uses a slightly modified LR-style algorithm that passes to the scanner the set of valid symbols that the scanner may return at that point in parsing. This set is those terminals whose entries in the parse table for the current parse state are shift, reduce, or accept, but not error. The scanner then only returns tokens in this set. An analysis is given that can statically verify that the scanner will never return more than one token for a single input. Context-aware scanning is especially useful when parsing and scanning extensible languages in which domain specific languages can be embedded. It has been used in extensible versions of Java 1.4 and ANSI C. We illustrate this approach with a declarative specification of a subset of Java and extensions that embed SQL queries and Boolean expression tables into Java.