Translation script / effective test
Translation script / effective test
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
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.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close