From 6f767eb4b27c4e15ca6c3be3b93ca187caf95bd9 Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Tue, 8 Jan 2019 00:00:09 +1100 Subject: Basic test framework and initial tests for Packrat.Util predicates --- packrat_parser_lib_notes.txt | 55 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 11 deletions(-) (limited to 'packrat_parser_lib_notes.txt') diff --git a/packrat_parser_lib_notes.txt b/packrat_parser_lib_notes.txt index faa423e..a09babf 100644 --- a/packrat_parser_lib_notes.txt +++ b/packrat_parser_lib_notes.txt @@ -95,8 +95,6 @@ Choice (the other that requires passing in an array of function accesses) subtree it produces added as a child of the current position on the output structure Count - -Some -Some_Until Many Many_Until Separate_By @@ -121,11 +119,11 @@ Match Match_With - first uses a transforming function on the next input token then tests against a supplied argument as above, creating a node with the untransformed input if there is a match -Substring +Multimatch - for matching multiple successive items, eg a substring in a string input - checks an array argument against the same length subarray of input tokens for a match, if successful creates a node with that subarray -Substring_With +Multimatch_With - applies a transforming function before the check as above Take - creates a node with the next input token @@ -135,10 +133,6 @@ Take_While Take_Until - takes a predicate and creates a node with the subarray of input tokens corresponding to the next N input where the predicate fails -Take_All - - creates a node with the complete rest of the input token array -End_Of_Line - - a combination of Choice and Match/Substring with "\r\n", "\n", or "\r" (these are recogniser combinators that discard nodes produced by other components) Skip @@ -154,6 +148,8 @@ End_Of_Input Packrat.Lexer - generic over the enum used for labeling lexemes and the input token_list as well as component token elements + - should be possible to place an upper limit on the number of tokens scanned, so as to accommodate a statically + sized output array of tokens (and possibly a statically sized input array) List of funcs: Scan @@ -168,15 +164,25 @@ Packrat.Lexer.Combinators List of funcs: Sequence +Count +Many +Many_Until Satisfy Satisfy_With Match Match_With +Multimatch +Multimatch_With Take Take_While Take_Until +Start_Of_Line +End_Of_Line +Start_Of_Input +End_Of_Input + @@ -191,7 +197,9 @@ Is_Digit Is_Hex Is_Letter Is_Alphanumeric +Is_Punctuation Is_ASCII +Is_Extended_ASCII Is_Space Is_Linespace Is_End_Of_Line @@ -220,17 +228,42 @@ List of datatypes: Error_Info (containing an enum of the symbol expected, and a natural of the position) List of funcs: -New_Message -To_Message -From_Message +Newcode +Encode +Decode +Join + + +Ratnest + +List of funcs: +Run_Tests + + Ratnest.Tests +List of funcs: +Is_Digit_Check +Is_Hex_Check +Is_Letter_Check +Is_Alphanumeric_Check +Is_ASCII_Check +Is_Extended_ASCII_Check +Is_Space_Check +Is_Linespace_Check +Is_End_Of_Line_Check +Is_Whitespace_Check +Is_Not_Whitespace_Check + + + + Ratnest.Examples - some parser examples -- cgit