EParser is the first E language parser on the market, developed using the Java technology.
E language is the functional verification of electronic designs language (see http://www.ieee1647.org for more details). AMIQ is an active contributor to the IEEE 1647 standard.
There must be a parser at the core of any application which handles E language constructs. This parser is specifically designed to speed-up the development of E based design automation tools. Users avoid spending time building the E language recognition layer, instead they focus on the added value of their application.
EParser reads in E source code and outputs the abstract syntax tree (AST). The AST may be used as input to various applications like pretty printers, analyzers, translators, code instrumentation tools etc.
- IEEE1647 compliant
- Written in platform independent Java
- Abstract syntax tree (AST) output
- 100% language coverage, including:
- Both regular and cyclic imports, verilog imports
- Preprocessing (#define, #undef, #ifdef)
- Macros (define as, define as computed without execution)
- Simulator constructs
- Line number tracking, including inside macro reparse
- Multiple error report
- Reference tree grammar (EWalker)
- 65k lines / 30sec on 1.3GHz, RAM 256M, JVM 1.5
- Extreme verification
- Against real user designs
- Both directed and random
- Self checking
- More than 500 error tests
- Organized in a directory tree according to BNF
- Functional coverage data is collected according to LRM
- Each test case clearly states the feature that is being tested
- And growing
EWalker - Reference Tree Grammar
As a further step to reduce the development effort, EParser ships with a reference tree visitor (EWalker) in the form of an ANTLR grammar. This grammar is very similar with the E language BNF.
With actions embedded within the grammar rules, you can manipulate the tree (translators), collect meaningful data (analyzers), rewrite the source code according to specific format (pretty printing), rewrite instrumented source code (code coverage), etc.
Some of the applications developed on top of EParser are:
- DVT Plug-In for Eclipse™ an Eclipse based IDE for hardware design and verification.
- ImportViewer helps you visualize and explore the import graph of an E program.
- NameChecker helps you check the project level naming conventions.
- ParseTracker helps you browse the EParser output.