Theory
Several articles contain relevant for the parsers generated by the Tunnel Grammar Studio.Ambigous grammars
Details of how some ambiguous grammars are processed deterministically, by building one of all possible trees, is described in article
Tunnel Parsing with Ambiguous Grammars published in
Journal Cybernetics and Information Technologies, Volume
23, Issue
2, year
2023, pages
34-53, DOI
https://doi.org/10.2478/cait-2023-0012. A PDF is attached after the abstract:
The article proposes an addition to the tunnel parsing algorithm that enables it to parse grammars having countable repetitions and configurations of grammar elements generating empty words without refactoring the grammar. The equivalency of trees built by the use of ambiguous grammar is discussed. The class of the ε-ambiguous grammars is defined as a subclass of the ambiguous grammars relative to these trees. The ε-deterministic grammars are then defined as a subclass of the ε-ambiguous grammars. A technique for linearly parsing on the basis of non-left recursive ε-deterministic grammars with the tunnel parsing algorithm is shown.
Token`s Lexeme
Details of how the input data processed case-sensitively or case-insensitively by the parsers generated by Tunnel Grammar Studio is described in article
Tunnel Parsing with the Token’s Lexeme published in
Journal Cybernetics and Information Technologies, Volume
22, Issue
2, year
2022, pages
125-144, DOI
https://doi.org/10.2478/cait-2022-0021. A PDF is attached after the abstract:
The article describes a string recognition approach, engraved in the parsers generated by Tunnel Grammar Studio that use the tunnel parsing algorithm, of how a lexer and a parser can operate on the input during its recognition. Proposed is an addition of the augmented Backus-Naur form syntax that enables the formal language to be expressed with a parser grammar and optionally with an additional lexer grammar. The tokens outputted from the lexer are matched to the phrases in the parser grammar by their name and optionally by their lexeme, case sensitively or insensitively.
Counted repetitions
Details of how the tunnel parsing algorithm processes repetitions of grammar elements are shown in the article
Tunnel Parsing with counted repetitions published in
Journal Computer Science, volume
21, issue
4, year
2020, DOI
https://doi.org/10.7494/csci.2020.21.4.3753. A PDF is attached after the abstract:
This article describes a new and efficient algorithm for parsing (called tunnel parsing) that parses from left to right on the basis of context-free grammar without left recursion nor rules that recognize empty words. The algorithm is mostly applicable for domain-specific languages. In the article, particular attention is paid to the parsing of grammar element repetitions. As a result of the parsing, a statically typed concrete syntax tree is built from top to bottom, that accurately reflects the grammar. The parsing is not done through a recursion, but through an iteration. The tunnel parsing algorithm uses the grammars directly without a prior refactoring and is with a linear time complexity for deterministic context-free grammars.
Syntax Trees
Relevant theory about the generated trees by Tunnel Grammar Studio can be found in article
The Expressive Power of the Statically Typed Concrete Syntax Trees published at
Proceedings of the 14th International Conference Education and Research in the Information Society (ERIS 2021),
volume 3061, ISSN
1613-0073. A PDF is attached after the abstract:
The article specifies the definitions of a Concrete Syntax Tree and an Abstract Syntax Tree. The different types of knowledge that are shared between a parser and builder modules in a parsing machine, about the syntax tree building, are discussed. For the building of the syntax tree, various Syntax Structure Construction Commands are presented. They are transmitted from the parser to the builder, depending on the type of tree. Template grammars and a computer program (Parser Generator Profiler) that performs parser tests on their basis are described. The empirical results from the different tests (for different combinations of grammar elements), performed with different types of syntax trees, for different parsers generated by different parser generators, are shown. The measurements are based on different criteria such as the time for the tree building, its traversal time, its destruction time, and the memory used by it.
Parsing machine architecture
Relevant theory about the
architecture of the generated
parsing machines by Tunnel Grammar Studio can be found in article
A Parsing Machine Architecture Encapsulating Different Parsing Approaches published at
International Journal on Information Technologies and Security, volume
13, issue
3, year
2021, pages
27-38. An archive file (for the whole issue) can be download
here. The abstract is as follows:
In the parsing theory, seemingly different parsing machines exist, due to the use of different terms that have similar meanings. This article addresses the diversity in the parsing terminology by proposing definitions for various objects and processes in a parsing machine. Based on the defined objects and processes, a common architecture of a parsing machine is proposed that is applicable in practice when using different parsing approaches. The modules of the parsing machine and their close relations are shown. The proposed parsing machine architecture is to a large extent used in the parsers generated by Tunnel Grammar Studio.
Installation
The Grammar Studio is a standalone application with a single executable file and an eventually accompanying license file. Every registered user after a successfully completed purchase of a license, may download its files from the website in its user page.
System Requirements
The Tunnel Grammar Studio runs currently in Windows 10, 7 and XP SP2. The GUI uses OpenGL with minimum supported version 2.0 (GLSL support 1.3) with minimum of 128MB video memory. At runtime, depending from the grammar the video memory requirements MAY grow. The runtime memory need is minimum 32 MB, but at compile time the memory required MAY grow significantly based on the supplied grammars. Hard disk space required for the moment is less then 10 MB.
Full Documentation
The full documentation can be downloaded from here.