Tunnel Grammar Studio documentation


Theory


Several articles contain relevant for the parsers generated by the Tunnel Grammar Studio.

Token's lexemes


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" with DOI: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.

RequirementsDownloadFile NameHash SHA-256
Requirements
PDF File Support
Download
Tunnel parsing (token's lexeme)
File Name
Tunnel parsing (token's lexeme).pdf
Hash SHA-256
c1982193 f95d312b b19f4bff 3a015b22 d83d0172 8b2a46ac a4aa43ad fffc2a22

Grammars with counted repetitions


Details of the tunnel parsing algorithm, that is used in the generated parsers by Tunnel Grammar Studio, are available in the article "Tunnel Parsing with counted repetitions" with DOI: 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.

RequirementsDownloadFile NameHash SHA-256
Requirements
PDF File Support
Download
Tunnel parsing (counted repetitions)
File Name
Tunnel parsing (counted repetitions).pdf
Hash SHA-256
7aec58ee f1d12068 d263b09c 4631389f 63415374 28b558c7 dc38e3b1 03d7e5da

The variaty of the 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), Vol-3061, with 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.
RequirementsDownloadFile NameHash SHA-256
Requirements
PDF File Support
Download
Tunnel parsing (syntax trees)
File Name
Tunnel parsing (syntax trees).pdf
Hash SHA-256
14f12e75 f3fb2bc3 4c7c7fc4 c1c920b2 a7b342de ba6e2837 10051ede 0f65e6e9

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", No.3 (vol. 13), 2021, pp. 27-38. A PDF file 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.

RequirementsDownloadFile NameHash SHA-256
Requirements
PDF File Support
Download
Tunnel Grammar Studio Documentation
File Name
TunnelGrammarStudio Documentation.pdf
Hash SHA-256
f6ae00aa 46bbceae 37d46e62 d5fc8953 53741edf e359f04d 76173893 d80069ee