Grammars + Parsers + APIs = NETS3

Grammars model parsers. Parsers execute grammars. APIs run parsers. NETS has all three. NETS3.


Editing a configuration file and running a process on the command line are some of the most fundamental tasks of devops. But every config file is different, every process operates uniquely and the command line is always the right API. NETS is an experimental parser that provides a common way to configure, run and integrate processes, locally and in the cloud.

Grammars

Grammars define the rules for configuring and running a parser.

Parsers

Parsers use grammars to configure how they consume input and produce output.

APIs

Command line, JavaScript, C and REST APIs that integrate parsers into systems.

Find out more

Parser Expression Grammars

Nets parser supports Parser Expression Grammars or PEGs (Ford, 2004). The 'and' and 'not' predicates provide an alerantive to ISO 14977 exceptions. Nets parser introduces the 'again' predicate for repated parsing of the same input.

Predicates

Declarative Abstract Syntax Trees based on W3C DOM

Nets parser supports a declarative model of Abstract Syntax Trees (ASTs) based on the W3C DOM model. This model is unified with the Nets parser input/output model. Nets parser supports document, element, attribute, entity, entity reference, text, processinginstruction and comment nodes.

Streamed Document Object Model

ISO/IEC 14977 and EBNF Grammars

Nets parser supports the ISO/IEC 14977 standard for grammars including rules, terminals, non-terminals, group sequences, optional sequences, repeating sequences, exceptions, factors, the empty sequence and comments. Special sequences are supported as production terminals.

EBNF and ISO 14877 Grammars

Grammar XML

GXML is an XML representation of grammars capable of modeling BNF, EBNF, PEG and NEBNF grammars. Nets parser implements GXML.

XML Grammars

Pipelines

Nets EBNF introduces pipelines, which allow grammars to be chained together in sequences with the output of one primary becoming the input to another. Pipelines simplify parsers and grammars.

Pipelines

Grammar Libraries

Nets parser supports user defined and system defined grammar libraries in compiled and interpretted forms.

Libraries