Liking cljdoc? Tell your friends :D

ari.core

Translation script / effective test

Translation script / effective test
raw docstring

ari.lex

General lexing module. Converts a raw text file into a list of tagged words based on defined lexical rules

General lexing module. Converts a raw text file into a list of tagged words based on defined lexical rules
raw docstring

ari.parse.parse

Ari's parsing module:

The core of ari's input: this module allows for the EBNF/pyBNF grammars to be specified, so that other grammars can be read in by ari. Other grammars are then converted to this set of parser-functions.

Parser structure [tokens log] -> [{tree}, [remaining tokens log]] If the parser is unsuccessful, then {tree} will actually be nil, signifying error. The log argument is a dictionary, usually with the keys :all and :head defined as a subdictionary and key-list respectively.

Notes:

Parse technique: Given multiple parsers: While tokens are available for input.. For each available parser, try its first element If this matches, keep the parser in the group of possible parsers If it does not match, remove the parser from the current possible set If there are no parsers left, throw an error.

TODO: Once there is no input left, create a parse tree with the longest parser. If two syntax elements are ambiguous, throw an error.

Ari's parsing module:

The core of ari's input: this module allows for the EBNF/pyBNF grammars to be specified, so that other grammars can be read in by ari.
Other grammars are then converted to this set of parser-functions.

Parser structure
[tokens log] -> [{tree}, [remaining tokens log]]
If the parser is unsuccessful, then {tree} will actually be nil, signifying error.
The log argument is a dictionary, usually with the keys :all and :head defined as a subdictionary and key-list respectively.

Notes:

Parse technique:
Given multiple parsers:
While tokens are available for input..
For each available parser, try its first element
If this matches, keep the parser in the group of possible parsers
If it does not match, remove the parser from the current possible set
If there are no parsers left, throw an error.

TODO: Once there is no input left, create a parse tree with the longest parser. If two syntax elements are ambiguous, throw an error.
raw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close