Studio

Modules included into the IDE

Basic functionality

All basic functionalities that every instance of the studio must have, as a Graphical Unit Interface (GUI).

Lexer

Support of a lexer grammar to group the input characters into phrases.

Parser

Support for a parser grammar to order the tokens into a syntax tree.

Graph drawing

Rendering of the lexer and parser grammars as an automata layouts directly into the IDE

Debugger

Real-time debugging directly integrated into the IDE

Generated Parser: Threading

Threading options that will be available for the generated parsers

Single Threading

Ability to generated single thread parsing machines

Muilti Thread

Ability to generated multi thread parsing machines

Generated Parser: Input

Modules for different input data for the generated parsers

Stream Interface

Support for custom byte input interface. The bytes delivered from this interface implementations will be decoded as ASCII, UTF-8 or other encoding by the input processor later on

Generated Parser: Processing

Options available for the generated parsers to decode the input byte data into characters

ASCII

Character decoder for American Standard Code for Information Interchange (ASCII)

WIN 1252

Single byte decoder for the WIN 1252 encoding

ISO/IEC 8859-1

Decoder for bytes encoded with ISO/IEC 8859-1 standard

UTF-8

Decoding of the input stream as UTF-8 characters. All invalid sequences are replaced as defined in the Unicode Standard

UTF-16

Decoding of the input stream as UTF-16 LE/BE characters. All invalid sequences are replaced as defined in the Unicode Standard

UTF-32

Decoding of the input stream as UTF-32 LE/BE characters. All invalid sequences are replaced as defined in the Unicode Standard

Automatic

Automatic detection of the input bytes encoding based on the available decoders in the generated parser

Generated Parser: Location Information

Available options that control the details of the location information, that will be available in case of an error and in the syntax tree if such a functionality is chosen

Byte Offset

Calculate the byte offset of every character. Useful for detailed error reporting or locating specific tree elements into the input stream

Codepoint Offset

Calculate and make available the code point offset information per input character

Line and Char Indexes

Calculate line and character in the line indexes for the parsed input. Respected are many line terminators as CR, CRLF, LF and others as per the documentation

Generated Parser: Syntax Tree

Options used in relation with the final result of the parsing - the syntax tree

Iterative Destructor

Use dynamic memory to destruct long depth syntax trees, not the dedicated thread stack

ToString Recursive

Have a ToString method that will collect all syntax tree input characters used to construct an element. The thread dedicated stack is used with recursive calls in depth to collect the characters

ToString Iterative

Have a ToString method that will collect all syntax tree input characters used to construct an element. The dynamic memory is used without depth recursive calls into the tree structure, but with an iteration

Tree element to input locations

Have from/to location information in the syntax tree elements. Makes it easy to know where in the input a particular element is located

Generated Parser: Error Messages

Options that change the information available when the parser discovers an error in the input

Expected tokens list

Calculate a list of the possible tokens that could be recognized in the place of the error token

Found token information

Supply information for the erroneous token found

Generated Parser: Target Langauge

Target language options for the generated parsers

C++98 x86 (32 bit)

Generate code for C++ programming language minimum version C++98, with 32 bit word size

C++98 x86/64 (32/64 bit)

Generate code for C++ programming language with a minimum version C++98 with x86/64 support. It can be used with 32 bit word size too, but the memory taken will be always 64 bits per word