PL/1 Parser (Front End)
The PL/1 parser (front end) enables the construction of PL/1 custom compilers, analysis tools, or source transformation tools. It is a member of SD's family of language front ends, based on first-class infrastructure (DMS) for implementing such custom tools. The PL/1 front end includes:
- Lexical analysis including EBCDIC, ASCII and ISO 8859-1
- Conversion of literal values (numbers, escaped strings) into native values to enable easy computation over literal values
- String literals represented internally in Unicode to support 16-bit characters
- Explicit grammar directly implements defacto and real standards and extensions
- Full PL/1 level G parser
- Stratus PL/1 dialect
- SabreTalk PL/1 variant dialect
- Easy extension for other dialects
- Automatic construction of complete abstract syntax tree
- Capture of comments and formats (shape) of literal values
- Capture of ambiguous parses during parsing
- Ability to parse large systems of files into same workspace, enabling interprocedural and cross-file analysis/transformation
- Ability to parse different languages into same workspace, enabling cross-language analysis/transformation
- Facilities to process syntax trees
- Complete procedural API to visit/query/update/construct/print syntax trees
- Source regeneration by prettyprinting and/or fidelity printing of syntax trees with comments and lexical formats
- Automatically generated source-to-source transformation system
- Ability to define custom attribute-grammar-based analyzers
- Name and Type resolution
- Type representation system for all PL/1 types defined
- All identifiers resolved to their defined type and stored in symbol tables
- Automatic deletion of erroneous alternatives of ambiguous parses
- Ability to query expression trees for derived type
- Ability to condition transforms on identifier type or expression type
- Abilility to visit/query/update symbol tables
- Available as source code to enable complete customization
Many of these facilities come as a consistent consequence of the front end being built on top of DMS.
Here are some sample tools (many offered by SD as products) built using the PL/1 front end:
SD also offers:
- IBM Enterprise COBOL parser (front end)
- HLASM parser (front end)
- JCL parser (front end)
Your organization may use DMS with the PL/1 front end to implement and deploy your own custom tools. The sample tools can be obtained in source form as part of the PL/1 front end for customization. Semantic Designs is also willing to build custom tools under contract.