From 5d659f8c4601d16e06ac31d6fb4e2340401739f0 Mon Sep 17 00:00:00 2001 From: Jan Max Meyer Date: Tue, 7 Nov 2017 22:36:09 +0100 Subject: [PATCH] General preparation for a v0.20.0 release --- CHANGELOG.md | 2 +- Version | 2 +- configure | 20 +- configure.ac | 2 +- doc/Makefile | 2 +- doc/phorward.html | 1028 +++++++++++++++++++------------------------- doc/phorward.t2t | 4 +- doc/ref.t2t | 104 ++++- src/phorward.h | 2 +- src/version.h | 2 +- tools/Makefile.gnu | 2 +- 11 files changed, 558 insertions(+), 612 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f281fae..dcafe75f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ This file is used to document any relevant changes done to libphorward. ## v0.20 -Released on: Outstanding +Released on: November 7, 2017 - Started use of a lexical analyzer in the build-in LR parser (very unstable!). - Changed behavior of command-line tools to be more pynetree compliant. diff --git a/Version b/Version index 1dfdcaa3..1e9e683a 100755 --- a/Version +++ b/Version @@ -1,4 +1,4 @@ #!/bin/sh -echo "0.20.0 devel" +echo "0.20.0" # When changing version number, remove src/version.h to regenerate it! diff --git a/configure b/configure index ef2e2359..36a9a664 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Phorward Toolkit 0.19. +# Generated by GNU Autoconf 2.69 for Phorward Toolkit 0.20. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Phorward Toolkit' PACKAGE_TARNAME='phorward-toolkit' -PACKAGE_VERSION='0.19' -PACKAGE_STRING='Phorward Toolkit 0.19' +PACKAGE_VERSION='0.20' +PACKAGE_STRING='Phorward Toolkit 0.20' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1315,7 +1315,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Phorward Toolkit 0.19 to adapt to many kinds of systems. +\`configure' configures Phorward Toolkit 0.20 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1386,7 +1386,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Phorward Toolkit 0.19:";; + short | recursive ) echo "Configuration of Phorward Toolkit 0.20:";; esac cat <<\_ACEOF @@ -1497,7 +1497,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Phorward Toolkit configure 0.19 +Phorward Toolkit configure 0.20 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1916,7 +1916,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Phorward Toolkit $as_me 0.19, which was +It was created by Phorward Toolkit $as_me 0.20, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2783,7 +2783,7 @@ fi # Define the identity of the package. PACKAGE='phorward-toolkit' - VERSION='0.19' + VERSION='0.20' cat >>confdefs.h <<_ACEOF @@ -13362,7 +13362,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Phorward Toolkit $as_me 0.19, which was +This file was extended by Phorward Toolkit $as_me 0.20, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13419,7 +13419,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Phorward Toolkit config.status 0.19 +Phorward Toolkit config.status 0.20 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index c2dd82c4..745b3383 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.68]) -AC_INIT([Phorward Toolkit], [0.19]) +AC_INIT([Phorward Toolkit], [0.20]) AC_PREFIX_DEFAULT([/usr]) AC_CONFIG_SRCDIR([src/phorward.tpl.h]) diff --git a/doc/Makefile b/doc/Makefile index 349f737a..05f3595b 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -16,7 +16,7 @@ SRC = array.t2t \ all: $(HTMLOUT) $(HTMLOUT): $(SRC) Makefile - txt2tags -o $@ -t xhtml --toc --css-suggar --style=phorward.css $(MAINSRC) + txt2tags -o $@ -t xhtml --toc --css-sugar --style=phorward.css $(MAINSRC) $(TXTOUT): $(SRC) Makefile txt2tags -t txt -H -o - $? | sed -E -n '1h;1!H;$${;g;s/ +([-A-Z ]+)\n +(=+)/\1\n\2/g;p;}' | sed 's/^ / /g' >$@ diff --git a/doc/phorward.html b/doc/phorward.html index cc730317..58751c09 100644 --- a/doc/phorward.html +++ b/doc/phorward.html @@ -11,14 +11,13 @@
- -

Table of Contents

+

Table of Contents

@@ -593,6 +592,18 @@

Table of Contents

  • pvasprintf
  • +
  • pvm_create +
  • +
  • pvm_define +
  • +
  • pvm_free +
  • +
  • pvm_init +
  • +
  • pvm_prog_run +
  • +
  • pvm_reset +
  • pwcs_to_str
  • pwcscatchar @@ -630,11 +641,9 @@

    Table of Contents

  • - -

    General

    +

    General

    - -

    Introduction

    +

    Introduction

    phorward is a free toolkit for parser development, lexical analysis, regular expressions and more. @@ -681,8 +690,7 @@

    Introduction

    phorward also provides useful general-purpose extensions for C programming. This includes dynamic data structures (e.g. linked lists, hash-tables, stacks and arrays), extended string management functions and platform-independent, system-specific helper functions.

    - -

    Features

    +

    Features

    phorward provides the following features: @@ -763,8 +771,7 @@

    Features

    Please check out http://phorward.phorward-software.com/ continuously to get latest news, documentation, updates and support on the Phorward Toolkit.

    - -

    Building from sources

    +

    Building from sources

    Building the Phorward Toolkit is simple as every GNU-style open source program. Extract the release tarball or clone the Mercurial repository into a directory of your choice. @@ -797,7 +804,7 @@

    Building from sources

    (properly as root), to install the toolkit into your system.

    -On Windows systems, the usage of http://cygwin.org/ or another Unix shell environment is required. The Phorward Toolkit also perfectly cross-compiles on Linux using the MinGW and MinGW_x86-64 compilers. +On Windows systems, the usage of Cygwin or another Unix shell environment is required. The Phorward Toolkit also perfectly cross-compiles on Linux using the MinGW and MinGW_x86-64 compilers.

    To compile into 32-Bit Windows executables, configure with @@ -815,8 +822,7 @@

    Building from sources

    $ ./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32 - -

    Alternative local development system

    +

    Alternative local development system

    Alternatively to the autotools build system used for installation, there is also a simpler method on setting up a local build system for development and testing purposes. @@ -844,8 +850,7 @@

    Alternative local development system

    Note, that changes to the build system then must be done in the local Makefile, the local Makefile.gnu as well as the Makefile.am for the autotools-based build system.

    - -

    Who develops libphorward?

    +

    Who develops libphorward?

    The Phorward Toolkit is developed and maintained by Jan Max Meyer, Phorward Software Technologies. @@ -857,8 +862,7 @@

    Who develops libphorward?

    Help of any kind to extend and improve this software is always appreciated.

    - -

    Copyright

    +

    Copyright

    Copyright © 2006-2017 by Phorward Software Technologies, Jan Max Meyer. @@ -870,8 +874,7 @@

    Copyright

    THIS SOFTWARE IS PROVIDED BY JAN MAX MEYER (PHORWARD SOFTWARE TECHNOLOGIES) AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JAN MAX MEYER (PHORWARD SOFTWARE TECHNOLOGIES) BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    - -

    Guidelines

    +

    Guidelines

    The Phorward Toolkit, or shortly called libphorward, is a well-established C programming library which has its origins in several existing projects, where many features had been modularized and unified for a general purpose usage. @@ -932,15 +935,13 @@

    Guidelines

    If you don't like our coding style, you still can code on your own style, but please not within libphorward's own sources which are for the general public - these shall be kept clear - Thank you! :)

    - -

    General tools

    +

    General tools

    The Phorward Toolkit provides some extensional general-purpose functions, making C programming a little way easier and simpler. It is not necessary or required to use these functions when creating software that makes use of features from the Phorward Toolchain, but maybe they fit some developer's needs and could be useful.

    - -

    Booleans

    +

    Booleans

    libphorward makes a heavy usage of the self-hosted data-type pboolean, which is also referenced by a define BOOLEAN, and the constants TRUE and FALSE. @@ -959,8 +960,7 @@

    Booleans

    within phorward.h.

    - -

    Replacement for memory functions

    +

    Replacement for memory functions

    The standard memory allocation functions can be replaced by these pendants: @@ -981,8 +981,7 @@

    Replacement for memory functions

    These functions are entirely used trough libphorward's internal object mapping functions.

    - -

    Debug and trace facilities

    +

    Debug and trace facilities

    Althought this option is not widely used in modern C/C++ projects, libphorward offers an own debug and trace facility that can be turned on for modules for detecting bugs or view the program trace. @@ -1088,8 +1087,7 @@

    Debug and trace facilities

    20772 (demo.c: 401) } - -

    Command-line tools

    +

    Command-line tools

    libphorward also provides some general-purpose command-line tools which are installed and made available. These tools are heavily used by libphorward's own build process. @@ -1110,8 +1108,7 @@

    Command-line tools

    The general command-line tools are written as shell scripts in combination with standard Unix command-line utilities like awk, grep and sed.

    - -

    String tools

    +

    String tools

    The libphorward provides a set of functions for extended, dynamic string memory handling. These functions are named according to their standard C library counterparts, with a preceded "p". @@ -1186,14 +1183,11 @@

    String tools

    Althought the wide-character pendants to the standard extended string functions are not consistent right now, they may be extended in the future, when the existence of such functions is needed, or another, brave programmer is having the fun to implement them.

    - -

    Dynamic data management tools

    +

    Dynamic data management tools

    - -

    parray: Arrays and stacks

    +

    parray: Arrays and stacks

    - -

    Overview

    +

    Overview

    The parray object is a general-purpose data structure which can be used for several operations. @@ -1232,8 +1226,7 @@

    Overview

    - -

    Construction and destruction

    +

    Construction and destruction

    parray objects are created using parray_create() or initialized with parray_init(). The specific functions require the objects byte size that is required for every single element, and a chunk-size. Latter one can be omitted by specifing a chunk-size of 0, so that 128 elements per chunk will be the default. Objects can be cleared with parray_erase(), respectively cleared and freed with parray_free(). @@ -1249,8 +1242,7 @@

    Construction and destruction

    parray_free( a ); - -

    Inserting elements

    +

    Inserting elements

    Elements can be inserted with @@ -1287,8 +1279,7 @@

    Inserting elements

    fill_usertype( tp ); - -

    Accessing and iterating elements

    +

    Accessing and iterating elements

    Direct access to specific elements is done using @@ -1334,8 +1325,7 @@

    Accessing and iterating elements

    Quick access to the first or last elements is gained by parray_last() and parray_first().

    - -

    Removing elements

    +

    Removing elements

    Elements can be removed with @@ -1360,8 +1350,7 @@

    Removing elements

    tp = (usertype*)parray_unshift( a ); - -

    Additional functions

    +

    Additional functions

    Other, useful functions are @@ -1380,11 +1369,9 @@

    Additional functions

    - -

    plist: Linked lists, hash-tables and queues

    +

    plist: Linked lists, hash-tables and queues

    - -

    Overview

    +

    Overview

    Next to the parray object, the plist object is a powerful C implementation of a double-linked list with some extra features. It is also used for handling homogenious elements of the same size in a dynamic way, and can be used for many tasks. @@ -1459,8 +1446,7 @@

    Overview

    - -

    Construction and destruction

    +

    Construction and destruction

    plist objects are created using plist_create() or initialized with plist_init(). The specific functions require the objects byte size that is required for every single element, and a flag configuration, that configures the plist object to a specified behavior. @@ -1505,8 +1491,7 @@

    Construction and destruction

    plist_free( l ); - -

    Inserting elements

    +

    Inserting elements

    Elements can be inserted with @@ -1549,8 +1534,7 @@

    Inserting elements

    fill_usertype( tp ); - -

    Accessing and iterating elements

    +

    Accessing and iterating elements

    Elements within a plist object are references by plistel items. To access the data element behind a plistel item, the function plist_access() is used, in combination with element retrival functions, like @@ -1604,8 +1588,7 @@

    Accessing and iterating elements

    ; - -

    Removing elements

    +

    Removing elements

    To remove elements from a plist object, the following functions can be used. @@ -1629,8 +1612,7 @@

    Removing elements

    plist_unshift( a, &t ); - -

    Sorting elements

    +

    Sorting elements

    plist objects provide a sorting automatism, so that elements can be sorted on demand or on the fly at each element insertation. @@ -1681,8 +1663,7 @@

    Sorting elements

    - -

    Interchanging functions

    +

    Interchanging functions

    plist objects also provide functions to handle data collections and sets, by providing functions that can deal with two objects of kind plist. Both lists must be configured with the same element memory size, else all functions will fail. @@ -1698,8 +1679,7 @@

    Interchanging functions

    - -

    Additional functions

    +

    Additional functions

    plist provides these additional functions: @@ -1714,8 +1694,7 @@

    Additional functions

    - -

    pccl: Character-classes

    +

    pccl: Character-classes

    The pccl object is established on top of the plist object and encapsulates easy-to-handle low-level functions for character-class handling. @@ -1809,11 +1788,9 @@

    pccl: Character-classes

    - -

    pregex, plex: Regular expression tools

    +

    pregex, plex: Regular expression tools

    - -

    Overview

    +

    Overview

    libphorward provides a powerful set of functions relating to general string pattern matching and lexical analysis using regular expressions. @@ -1840,8 +1817,7 @@

    Overview

    - -

    Meta constructs

    +

    Meta constructs

    In general, regular expressions are made-up of the following elements: @@ -1886,8 +1862,7 @@

    Meta constructs

    All meta-characters can be escaped by backslash, so they are interpretered as usual characters.

    - -

    Characters and escape sequences

    +

    Characters and escape sequences

    Any other character coming up is consumed as one expression to be matched in the input. @@ -1964,8 +1939,7 @@

    Characters and escape sequences

    Note: When specifying escape-sequences in static strings within C-code, they must be double-escaped, because they are first analyzed by the C compiler and then by libphorward's regex-parser. Therefore, specifiying a backslash \\ must become \\\\ in the C-Code, which then yields in \\ after compiling the C program.

    - -

    Shorthand character classes

    +

    Shorthand character classes

    Pre-defined shorthand character-classes are also supported by libphorward's pregex and plex tools. @@ -2009,8 +1983,7 @@

    Shorthand character classes

    - -

    Anchoring

    +

    Anchoring

    The following anchors are supported, when specified at beginning or ending of an expression: @@ -2043,8 +2016,7 @@

    Anchoring

    Anchors can be entirely switched off when setting the PREGEX_COMP_NOANCHORS on compile-time, respectively PREGEX_RUN_NOANCHORS on run-time.

    - -

    Examples

    +

    Examples

    Some examples: @@ -2081,8 +2053,7 @@

    Examples

    (TODO: more examples)

    - -

    pregex: Operating on regular expressions

    +

    pregex: Operating on regular expressions

    The pregex object is the object-oriented interface for string operations based on regular expressions. @@ -2109,8 +2080,7 @@

    pregex: Operating on regular expressions

    are supported by the compiled pattern.

    - -

    Construction and destruction

    +

    Construction and destruction

    pregex objects are constructed by pregex_create(). First parameter is the regular expression pattern string that is compiled into a DFA. The second parameter allows to specify several flags for influencing the compile- and execution process. All flags can be combined using the bitwise or-operator (|). @@ -2185,8 +2155,7 @@

    Construction and destruction

    pregex_free( r ); - -

    Matching

    +

    Matching

    To immediatelly test if a pregex-object matches on a string, the function pregex_match() shall be invoked. @@ -2238,8 +2207,7 @@

    Matching

    parray_free( a ); - -

    Splitting

    +

    Splitting

    Splitting a string by a regular expression can be done with pregex_split(). This function takes several parameters, and is designed to be called in a loop. @@ -2278,8 +2246,7 @@

    Splitting

    parray_free( a ); - -

    Replacing

    +

    Replacing

    The function pregex_replace() allows for replacing parts of strings by regular expressions. @@ -2313,8 +2280,7 @@

    Replacing

    To disable the backreference replacement features, the regular expression flag PREGEX_RUN_NOREF must be switched.

    - -

    Quick-access functions

    +

    Quick-access functions

    Based on the pregex-object, libphorward provides the shortcut functons @@ -2333,8 +2299,7 @@

    Quick-access functions

    for immediate use, without creating and destroying a pregex-object. Because this is done within the function calls, multiple calls of these functions result in huger runtime latencies and produce more overhead.

    - -

    plex: Lexical analysis using regular expressions

    +

    plex: Lexical analysis using regular expressions

    The second part of libphorwards regular expression tools is the plex-object, which encapsulates all required features for creating lexical analyzers (in terms of compiler-writers also called "scanners" or "lexers") into one handy object. @@ -2407,11 +2372,9 @@

    plex: Lexical analysis using regular expressions

    semicolon >;< - -

    pparse: Parser development tools

    +

    pparse: Parser development tools

    - -

    Overview

    +

    Overview

    The libphorward serves as a parser generator and language processing toolchain. It provides a flexible, integrated and consequent solution for any parsing issues. @@ -2428,8 +2391,7 @@

    Overview

    - -

    Grammars

    +

    Grammars

    Grammars in the libphorward's pparse module are expressed using the Phorward Grammar Definition Language (GDL), which was itself implemented using the pparse toolchain. @@ -2441,8 +2403,7 @@

    Grammars

    This language is made up of the fundamental elements: terminals, nonterminals and productions, and implements some special symbol attribution that influences the construction of the resulting abstract syntax tree, which is the result of a successful parse.

    - -

    Terminals

    +

    Terminals

    Terminals, also called terminal symbols, are atomics of the implemented language. They are directly read from the input stream. A terminal can be a single character, a string or a regular expression that matches on a pattern. It is on the language designer's choice how terminal symbols are made up in the particular implementation. Some examples for widely used terminals in programming languages are identifiers for variables and functions, operators, brackets, keywords like if or while, floating point or integer numbers, and so on. The parser will expect these terminals in a valid order according to the position it is during the parse - which is in turn defined by the underlying grammatical rules it follows. @@ -2474,15 +2435,13 @@

    Terminals

    Each block is always closed with a semicolon. These blocks associate a named terminal identifier (integer, while_keyword and hexchar) with a particular terminal definition.

    - -

    Nonterminals

    +

    Nonterminals

    Nonterminals, also called nonterminal symbols, can be seen like some sort of variable or "function calls" within a grammar, although they aren't. They reference to one or a bunch of the so called productions, which means that each production is always associated with at least one nonterminal. But one nonterminal may exist of several productions. They form valid sequences of terminals and other nonterminals which are allowed in the current context in they particular order. In other words: Nontermals can be expanded into their productions.

    - -

    Productions

    +

    Productions

    Productions, also called grammar rules or just rules, finally describe the syntax. Its better to say, that productions define a syntactical part of the grammar - which can be replaced by the specific nonterminal each production is associated with. This syntactical description is done by defining a sequence in which terminals and nonterminals may occur to form a valid sentence. This includes, that a nonterminal can reference itself recursively in its own productions, which is a very important aspect in non-regular languages. In other words: Productions can be substituted by their associated nonterminals. @@ -2500,24 +2459,20 @@

    Productions

    expr : expr '+' term | expr '-' term | term ; - -

    Utility functions

    +

    Utility functions

    Coming soon.

    - -

    Function reference

    +

    Function reference

    - -

    Macros

    +

    Macros

    - -

    PARMS

    +

    PARMS

    Definition: @@ -2548,8 +2503,7 @@

    PARMS

    - -

    PROC

    +

    PROC

    Definition: @@ -2583,8 +2537,7 @@

    PROC

    - -

    RETURN

    +

    RETURN

    Definition: @@ -2609,8 +2562,7 @@

    RETURN

    - -

    VARS

    +

    VARS

    Definition: @@ -2639,8 +2591,7 @@

    VARS

    - -

    VOIDRET

    +

    VOIDRET

    Definition: @@ -2662,14 +2613,12 @@

    VOIDRET

    - -

    Functions

    +

    Functions

    - -

    p_ccl_add

    +

    p_ccl_add

    Definition: @@ -2696,8 +2645,7 @@

    p_ccl_add

    - -

    p_ccl_addrange

    +

    p_ccl_addrange

    Definition: @@ -2728,8 +2676,7 @@

    p_ccl_addrange

    - -

    p_ccl_compare

    +

    p_ccl_compare

    Definition: @@ -2757,8 +2704,7 @@

    p_ccl_compare

    - -

    p_ccl_compat

    +

    p_ccl_compat

    Definition: @@ -2779,8 +2725,7 @@

    p_ccl_compat

    - -

    p_ccl_count

    +

    p_ccl_count

    Definition: @@ -2806,8 +2751,7 @@

    p_ccl_count

    - -

    p_ccl_create

    +

    p_ccl_create

    Definition: @@ -2831,8 +2775,7 @@

    p_ccl_create

    - -

    p_ccl_del

    +

    p_ccl_del

    Definition: @@ -2859,8 +2802,7 @@

    p_ccl_del

    - -

    p_ccl_delrange

    +

    p_ccl_delrange

    Definition: @@ -2885,8 +2827,7 @@

    p_ccl_delrange

    - -

    p_ccl_diff

    +

    p_ccl_diff

    Definition: @@ -2917,8 +2858,7 @@

    p_ccl_diff

    - -

    p_ccl_dup

    +

    p_ccl_dup

    Definition: @@ -2945,8 +2885,7 @@

    p_ccl_dup

    - -

    p_ccl_erase

    +

    p_ccl_erase

    Definition: @@ -2971,8 +2910,7 @@

    p_ccl_erase

    - -

    p_ccl_free

    +

    p_ccl_free

    Definition: @@ -2995,8 +2933,7 @@

    p_ccl_free

    - -

    p_ccl_get

    +

    p_ccl_get

    Definition: @@ -3031,8 +2968,7 @@

    p_ccl_get

    - -

    p_ccl_instest

    +

    p_ccl_instest

    Definition: @@ -3063,8 +2999,7 @@

    p_ccl_instest

    - -

    p_ccl_intersect

    +

    p_ccl_intersect

    Definition: @@ -3094,8 +3029,7 @@

    p_ccl_intersect

    - -

    p_ccl_negate

    +

    p_ccl_negate

    Definition: @@ -3121,8 +3055,7 @@

    p_ccl_negate

    - -

    p_ccl_parse

    +

    p_ccl_parse

    Definition: @@ -3159,8 +3092,7 @@

    p_ccl_parse

    - -

    p_ccl_parsechar

    +

    p_ccl_parsechar

    Definition: @@ -3191,8 +3123,7 @@

    p_ccl_parsechar

    - -

    p_ccl_parseshorthand

    +

    p_ccl_parseshorthand

    Definition: @@ -3219,8 +3150,7 @@

    p_ccl_parseshorthand

    - -

    p_ccl_print

    +

    p_ccl_print

    Definition: @@ -3259,8 +3189,7 @@

    p_ccl_print

    - -

    p_ccl_size

    +

    p_ccl_size

    Definition: @@ -3289,8 +3218,7 @@

    p_ccl_size

    - -

    p_ccl_test

    +

    p_ccl_test

    Definition: @@ -3320,8 +3248,7 @@

    p_ccl_test

    - -

    p_ccl_testrange

    +

    p_ccl_testrange

    Definition: @@ -3349,8 +3276,7 @@

    p_ccl_testrange

    - -

    p_ccl_to_str

    +

    p_ccl_to_str

    Definition: @@ -3383,8 +3309,7 @@

    p_ccl_to_str

    - -

    p_ccl_union

    +

    p_ccl_union

    Definition: @@ -3413,8 +3338,7 @@

    p_ccl_union

    - -

    pany_convert

    +

    pany_convert

    Definition: @@ -3441,8 +3365,7 @@

    pany_convert

    - -

    pany_copy

    +

    pany_copy

    Definition: @@ -3465,8 +3388,7 @@

    pany_copy

    - -

    pany_create

    +

    pany_create

    Definition: @@ -3492,8 +3414,7 @@

    pany_create

    - -

    pany_dup

    +

    pany_dup

    Definition: @@ -3513,8 +3434,7 @@

    pany_dup

    - -

    pany_fprint

    +

    pany_fprint

    Definition: @@ -3539,8 +3459,7 @@

    pany_fprint

    - -

    pany_free

    +

    pany_free

    Definition: @@ -3563,8 +3482,7 @@

    pany_free

    - -

    pany_get_bool

    +

    pany_get_bool

    Definition: @@ -3592,8 +3510,7 @@

    pany_get_bool

    - -

    pany_get_char

    +

    pany_get_char

    Definition: @@ -3621,8 +3538,7 @@

    pany_get_char

    - -

    pany_get_cstr

    +

    pany_get_cstr

    Definition: @@ -3650,8 +3566,7 @@

    pany_get_cstr

    - -

    pany_get_cwcs

    +

    pany_get_cwcs

    Definition: @@ -3679,8 +3594,7 @@

    pany_get_cwcs

    - -

    pany_get_double

    +

    pany_get_double

    Definition: @@ -3708,8 +3622,7 @@

    pany_get_double

    - -

    pany_get_float

    +

    pany_get_float

    Definition: @@ -3737,8 +3650,7 @@

    pany_get_float

    - -

    pany_get_int

    +

    pany_get_int

    Definition: @@ -3766,8 +3678,7 @@

    pany_get_int

    - -

    pany_get_long

    +

    pany_get_long

    Definition: @@ -3795,8 +3706,7 @@

    pany_get_long

    - -

    pany_get_ptr

    +

    pany_get_ptr

    Definition: @@ -3824,8 +3734,7 @@

    pany_get_ptr

    - -

    pany_get_str

    +

    pany_get_str

    Definition: @@ -3853,8 +3762,7 @@

    pany_get_str

    - -

    pany_get_ulong

    +

    pany_get_ulong

    Definition: @@ -3882,8 +3790,7 @@

    pany_get_ulong

    - -

    pany_get_wcs

    +

    pany_get_wcs

    Definition: @@ -3911,8 +3818,7 @@

    pany_get_wcs

    - -

    pany_init

    +

    pany_init

    Definition: @@ -3935,8 +3841,7 @@

    pany_init

    - -

    pany_parse

    +

    pany_parse

    Definition: @@ -3973,8 +3878,7 @@

    pany_parse

    - -

    pany_reset

    +

    pany_reset

    Definition: @@ -4001,8 +3905,7 @@

    pany_reset

    - -

    pany_set_bool

    +

    pany_set_bool

    Definition: @@ -4029,8 +3932,7 @@

    pany_set_bool

    - -

    pany_set_char

    +

    pany_set_char

    Definition: @@ -4057,8 +3959,7 @@

    pany_set_char

    - -

    pany_set_cstr

    +

    pany_set_cstr

    Definition: @@ -4085,8 +3986,7 @@

    pany_set_cstr

    - -

    pany_set_cwcs

    +

    pany_set_cwcs

    Definition: @@ -4113,8 +4013,7 @@

    pany_set_cwcs

    - -

    pany_set_double

    +

    pany_set_double

    Definition: @@ -4141,8 +4040,7 @@

    pany_set_double

    - -

    pany_set_float

    +

    pany_set_float

    Definition: @@ -4169,8 +4067,7 @@

    pany_set_float

    - -

    pany_set_int

    +

    pany_set_int

    Definition: @@ -4197,8 +4094,7 @@

    pany_set_int

    - -

    pany_set_long

    +

    pany_set_long

    Definition: @@ -4225,8 +4121,7 @@

    pany_set_long

    - -

    pany_set_ptr

    +

    pany_set_ptr

    Definition: @@ -4253,8 +4148,7 @@

    pany_set_ptr

    - -

    pany_set_str

    +

    pany_set_str

    Definition: @@ -4281,8 +4175,7 @@

    pany_set_str

    - -

    pany_set_ulong

    +

    pany_set_ulong

    Definition: @@ -4309,8 +4202,7 @@

    pany_set_ulong

    - -

    pany_set_wcs

    +

    pany_set_wcs

    Definition: @@ -4337,8 +4229,7 @@

    pany_set_wcs

    - -

    pany_to_bool

    +

    pany_to_bool

    Definition: @@ -4364,8 +4255,7 @@

    pany_to_bool

    - -

    pany_to_char

    +

    pany_to_char

    Definition: @@ -4391,8 +4281,7 @@

    pany_to_char

    - -

    pany_to_double

    +

    pany_to_double

    Definition: @@ -4418,8 +4307,7 @@

    pany_to_double

    - -

    pany_to_float

    +

    pany_to_float

    Definition: @@ -4445,8 +4333,7 @@

    pany_to_float

    - -

    pany_to_int

    +

    pany_to_int

    Definition: @@ -4472,8 +4359,7 @@

    pany_to_int

    - -

    pany_to_long

    +

    pany_to_long

    Definition: @@ -4499,8 +4385,7 @@

    pany_to_long

    - -

    pany_to_ptr

    +

    pany_to_ptr

    Definition: @@ -4526,8 +4411,7 @@

    pany_to_ptr

    - -

    pany_to_str

    +

    pany_to_str

    Definition: @@ -4553,8 +4437,7 @@

    pany_to_str

    - -

    pany_to_ulong

    +

    pany_to_ulong

    Definition: @@ -4580,8 +4463,7 @@

    pany_to_ulong

    - -

    pany_to_wcs

    +

    pany_to_wcs

    Definition: @@ -4607,8 +4489,7 @@

    pany_to_wcs

    - -

    parray_count

    +

    parray_count

    Definition: @@ -4628,8 +4509,7 @@

    parray_count

    - -

    parray_create

    +

    parray_create

    Definition: @@ -4653,8 +4533,7 @@

    parray_create

    - -

    parray_erase

    +

    parray_erase

    Definition: @@ -4680,8 +4559,7 @@

    parray_erase

    - -

    parray_first

    +

    parray_first

    Definition: @@ -4705,8 +4583,7 @@

    parray_first

    - -

    parray_free

    +

    parray_free

    Definition: @@ -4729,8 +4606,7 @@

    parray_free

    - -

    parray_get

    +

    parray_get

    Definition: @@ -4762,8 +4638,7 @@

    parray_get

    - -

    parray_init

    +

    parray_init

    Definition: @@ -4796,8 +4671,7 @@

    parray_init

    - -

    parray_insert

    +

    parray_insert

    Definition: @@ -4822,8 +4696,7 @@

    parray_insert

    - -

    parray_last

    +

    parray_last

    Definition: @@ -4847,8 +4720,7 @@

    parray_last

    - -

    parray_malloc

    +

    parray_malloc

    Definition: @@ -4872,8 +4744,7 @@

    parray_malloc

    - -

    parray_offset

    +

    parray_offset

    Definition: @@ -4899,8 +4770,7 @@

    parray_offset

    - -

    parray_partof

    +

    parray_partof

    Definition: @@ -4920,8 +4790,7 @@

    parray_partof

    - -

    parray_pop

    +

    parray_pop

    Definition: @@ -4953,8 +4822,7 @@

    parray_pop

    - -

    parray_push

    +

    parray_push

    Definition: @@ -4990,8 +4858,7 @@

    parray_push

    - -

    parray_put

    +

    parray_put

    Definition: @@ -5022,8 +4889,7 @@

    parray_put

    - -

    parray_remove

    +

    parray_remove

    Definition: @@ -5048,8 +4914,7 @@

    parray_remove

    - -

    parray_reserve

    +

    parray_reserve

    Definition: @@ -5073,8 +4938,7 @@

    parray_reserve

    - -

    parray_rget

    +

    parray_rget

    Definition: @@ -5107,8 +4971,7 @@

    parray_rget

    - -

    parray_rmalloc

    +

    parray_rmalloc

    Definition: @@ -5132,8 +4995,7 @@

    parray_rmalloc

    - -

    parray_rput

    +

    parray_rput

    Definition: @@ -5165,8 +5027,7 @@

    parray_rput

    - -

    parray_shift

    +

    parray_shift

    Definition: @@ -5199,8 +5060,7 @@

    parray_shift

    - -

    parray_swap

    +

    parray_swap

    Definition: @@ -5220,8 +5080,7 @@

    parray_swap

    - -

    parray_unshift

    +

    parray_unshift

    Definition: @@ -5257,8 +5116,7 @@

    parray_unshift

    - -

    pasprintf

    +

    pasprintf

    Definition: @@ -5288,8 +5146,7 @@

    pasprintf

    - -

    pbasename

    +

    pbasename

    Definition: @@ -5315,8 +5172,7 @@

    pbasename

    - -

    pdbl_to_str

    +

    pdbl_to_str

    Definition: @@ -5346,8 +5202,7 @@

    pdbl_to_str

    - -

    pdbl_to_wcs

    +

    pdbl_to_wcs

    Definition: @@ -5377,8 +5232,7 @@

    pdbl_to_wcs

    - -

    pfileexists

    +

    pfileexists

    Definition: @@ -5404,8 +5258,7 @@

    pfileexists

    - -

    pfiletostr

    +

    pfiletostr

    Definition: @@ -5432,8 +5285,7 @@

    pfiletostr

    - -

    pfree

    +

    pfree

    Definition: @@ -5471,8 +5323,7 @@

    pfree

    - -

    pgetopt

    +

    pgetopt

    Definition: @@ -5531,8 +5382,7 @@

    pgetopt

    - -

    plex_create

    +

    plex_create

    Definition: @@ -5612,19 +5462,18 @@

    plex_create

    On success, the function returns the allocated pointer to a plex-object. This must be freed later using plex_free().
    - +

    - -

    plex_define

    +

    plex_define

    Definition:

    -pboolean plex_define( plex* lex, char* pat, int match_id, int flags ) +pregex_ptn* plex_define( plex* lex, char* pat, int match_id, int flags )

    @@ -5681,12 +5530,16 @@

    plex_define

    +

    +Returns a pointer to the pattern object that just has been added. This allows +for changing e.g. the accept flag later on. In case of an error, the value +returned is NULL.

    +

    - -

    plex_free

    +

    plex_free

    Definition: @@ -5712,8 +5565,7 @@

    plex_free

    - -

    plex_lex

    +

    plex_lex

    Definition: @@ -5742,8 +5594,7 @@

    plex_lex

    - -

    plex_next

    +

    plex_next

    Definition: @@ -5777,8 +5628,7 @@

    plex_next

    - -

    plex_prepare

    +

    plex_prepare

    Definition: @@ -5798,8 +5648,7 @@

    plex_prepare

    - -

    plex_reset

    +

    plex_reset

    Definition: @@ -5819,8 +5668,7 @@

    plex_reset

    - -

    plex_tokenize

    +

    plex_tokenize

    Definition: @@ -5849,8 +5697,7 @@

    plex_tokenize

    - -

    plist_access

    +

    plist_access

    Definition: @@ -5870,8 +5717,7 @@

    plist_access

    - -

    plist_clear

    +

    plist_clear

    Definition: @@ -5896,8 +5742,7 @@

    plist_clear

    - -

    plist_count

    +

    plist_count

    Definition: @@ -5917,8 +5762,7 @@

    plist_count

    - -

    plist_create

    +

    plist_create

    Definition: @@ -5970,8 +5814,7 @@

    plist_create

    - -

    plist_diff

    +

    plist_diff

    Definition: @@ -5997,8 +5840,7 @@

    plist_diff

    - -

    plist_dup

    +

    plist_dup

    Definition: @@ -6021,8 +5863,7 @@

    plist_dup

    - -

    plist_erase

    +

    plist_erase

    Definition: @@ -6046,8 +5887,7 @@

    plist_erase

    - -

    plist_first

    +

    plist_first

    Definition: @@ -6067,8 +5907,7 @@

    plist_first

    - -

    plist_free

    +

    plist_free

    Definition: @@ -6091,8 +5930,7 @@

    plist_free

    - -

    plist_get

    +

    plist_get

    Definition: @@ -6115,8 +5953,7 @@

    plist_get

    - -

    plist_get_by_key

    +

    plist_get_by_key

    Definition: @@ -6140,8 +5977,7 @@

    plist_get_by_key

    - -

    plist_get_by_ptr

    +

    plist_get_by_ptr

    Definition: @@ -6165,8 +6001,7 @@

    plist_get_by_ptr

    - -

    plist_hashnext

    +

    plist_hashnext

    Definition: @@ -6186,8 +6021,7 @@

    plist_hashnext

    - -

    plist_hashprev

    +

    plist_hashprev

    Definition: @@ -6207,8 +6041,7 @@

    plist_hashprev

    - -

    plist_init

    +

    plist_init

    Definition: @@ -6230,8 +6063,7 @@

    plist_init

    - -

    plist_insert

    +

    plist_insert

    Definition: @@ -6256,8 +6088,7 @@

    plist_insert

    - -

    plist_key

    +

    plist_key

    Definition: @@ -6277,8 +6108,7 @@

    plist_key

    - -

    plist_last

    +

    plist_last

    Definition: @@ -6298,8 +6128,7 @@

    plist_last

    - -

    plist_malloc

    +

    plist_malloc

    Definition: @@ -6323,8 +6152,7 @@

    plist_malloc

    - -

    plist_next

    +

    plist_next

    Definition: @@ -6344,8 +6172,7 @@

    plist_next

    - -

    plist_offset

    +

    plist_offset

    Definition: @@ -6365,8 +6192,7 @@

    plist_offset

    - -

    plist_pop

    +

    plist_pop

    Definition: @@ -6394,8 +6220,7 @@

    plist_pop

    - -

    plist_prev

    +

    plist_prev

    Definition: @@ -6415,8 +6240,7 @@

    plist_prev

    - -

    plist_push

    +

    plist_push

    Definition: @@ -6441,8 +6265,7 @@

    plist_push

    - -

    plist_remove

    +

    plist_remove

    Definition: @@ -6463,8 +6286,7 @@

    plist_remove

    - -

    plist_rget

    +

    plist_rget

    Definition: @@ -6488,8 +6310,7 @@

    plist_rget

    - -

    plist_rmalloc

    +

    plist_rmalloc

    Definition: @@ -6513,8 +6334,7 @@

    plist_rmalloc

    - -

    plist_set_comparefn

    +

    plist_set_comparefn

    Definition: @@ -6534,8 +6354,7 @@

    plist_set_comparefn

    - -

    plist_set_printfn

    +

    plist_set_printfn

    Definition: @@ -6555,8 +6374,7 @@

    plist_set_printfn

    - -

    plist_set_sortfn

    +

    plist_set_sortfn

    Definition: @@ -6576,8 +6394,7 @@

    plist_set_sortfn

    - -

    plist_shift

    +

    plist_shift

    Definition: @@ -6602,8 +6419,7 @@

    plist_shift

    - -

    plist_size

    +

    plist_size

    Definition: @@ -6623,8 +6439,7 @@

    plist_size

    - -

    plist_sort

    +

    plist_sort

    Definition: @@ -6652,8 +6467,7 @@

    plist_sort

    - -

    plist_subsort

    +

    plist_subsort

    Definition: @@ -6682,8 +6496,7 @@

    plist_subsort

    - -

    plist_swap

    +

    plist_swap

    Definition: @@ -6705,8 +6518,7 @@

    plist_swap

    - -

    plist_union

    +

    plist_union

    Definition: @@ -6736,8 +6548,7 @@

    plist_union

    - -

    plist_unshift

    +

    plist_unshift

    Definition: @@ -6765,8 +6576,7 @@

    plist_unshift

    - -

    pmalloc

    +

    pmalloc

    Definition: @@ -6798,8 +6608,7 @@

    pmalloc

    - -

    pmemdup

    +

    pmemdup

    Definition: @@ -6827,8 +6636,7 @@

    pmemdup

    - -

    pp_ast_create

    +

    pp_ast_create

    Definition: @@ -6848,8 +6656,7 @@

    pp_ast_create

    - -

    pp_ast_dump

    +

    pp_ast_dump

    Definition: @@ -6869,8 +6676,7 @@

    pp_ast_dump

    - -

    pp_ast_dump_json

    +

    pp_ast_dump_json

    Definition: @@ -6893,8 +6699,7 @@

    pp_ast_dump_json

    - -

    pp_ast_dump_short

    +

    pp_ast_dump_short

    Definition: @@ -6917,8 +6722,7 @@

    pp_ast_dump_short

    - -

    pp_ast_dump_tree2svg

    +

    pp_ast_dump_tree2svg

    Definition: @@ -6939,8 +6743,7 @@

    pp_ast_dump_tree2svg

    - -

    pp_ast_free

    +

    pp_ast_free

    Definition: @@ -6963,8 +6766,7 @@

    pp_ast_free

    - -

    pp_ast_get

    +

    pp_ast_get

    Definition: @@ -6984,8 +6786,7 @@

    pp_ast_get

    - -

    pp_ast_len

    +

    pp_ast_len

    Definition: @@ -7005,8 +6806,7 @@

    pp_ast_len

    - -

    pp_ast_select

    +

    pp_ast_select

    Definition: @@ -7026,8 +6826,7 @@

    pp_ast_select

    - -

    pp_create

    +

    pp_create

    Definition: @@ -7047,8 +6846,7 @@

    pp_create

    - -

    pp_free

    +

    pp_free

    Definition: @@ -7068,8 +6866,7 @@

    pp_free

    - -

    pp_gram_create

    +

    pp_gram_create

    Definition: @@ -7089,8 +6886,7 @@

    pp_gram_create

    - -

    pp_gram_dump

    +

    pp_gram_dump

    Definition: @@ -7110,8 +6906,7 @@

    pp_gram_dump

    - -

    pp_gram_free

    +

    pp_gram_free

    Definition: @@ -7131,8 +6926,7 @@

    pp_gram_free

    - -

    pp_gram_from_bnf

    +

    pp_gram_from_bnf

    Definition: @@ -7156,8 +6950,7 @@

    pp_gram_from_bnf

    - -

    pp_gram_prepare

    +

    pp_gram_prepare

    Definition: @@ -7193,12 +6986,11 @@

    pp_gram_prepare

    This function is only run internally. Don't call it if you're unsure ;)...
    - +

    - -

    pp_lr_parse

    +

    pp_lr_parse

    Definition: @@ -7218,19 +7010,20 @@

    pp_lr_parse

    Parsing stops at least when reading the zero terminator of str.

    -ast receives an allocated parray-object with items of ppmatch elements -that describe the produced abstract syntax tree. +root receives the root-node of the constructed abstract syntax tree as +an ppast object.

    end receives the position of the last character matched. +

    +

    The function returns TRUE if no parse error occured.

    - -

    pp_parse_to_ast

    +

    pp_parse_to_ast

    Definition: @@ -7257,8 +7050,7 @@

    pp_parse_to_ast

    - -

    pp_prod_append

    +

    pp_prod_append

    Definition: @@ -7278,8 +7070,7 @@

    pp_prod_append

    - -

    pp_prod_create

    +

    pp_prod_create

    Definition: @@ -7300,8 +7091,7 @@

    pp_prod_create

    - -

    pp_prod_drop

    +

    pp_prod_drop

    Definition: @@ -7321,8 +7111,7 @@

    pp_prod_drop

    - -

    pp_prod_get

    +

    pp_prod_get

    Definition: @@ -7343,8 +7132,7 @@

    pp_prod_get

    - -

    pp_prod_getfromrhs

    +

    pp_prod_getfromrhs

    Definition: @@ -7366,8 +7154,7 @@

    pp_prod_getfromrhs

    - -

    pp_prod_remove

    +

    pp_prod_remove

    Definition: @@ -7388,8 +7175,7 @@

    pp_prod_remove

    - -

    pp_prod_to_str

    +

    pp_prod_to_str

    Definition: @@ -7413,8 +7199,7 @@

    pp_prod_to_str

    - -

    pp_sym_create

    +

    pp_sym_create

    Definition: @@ -7440,8 +7225,7 @@

    pp_sym_create

    - -

    pp_sym_drop

    +

    pp_sym_drop

    Definition: @@ -7461,8 +7245,7 @@

    pp_sym_drop

    - -

    pp_sym_get

    +

    pp_sym_get

    Definition: @@ -7483,8 +7266,7 @@

    pp_sym_get

    - -

    pp_sym_get_by_name

    +

    pp_sym_get_by_name

    Definition: @@ -7504,8 +7286,7 @@

    pp_sym_get_by_name

    - -

    pp_sym_get_nameless_term_by_def

    +

    pp_sym_get_nameless_term_by_def

    Definition: @@ -7525,8 +7306,7 @@

    pp_sym_get_nameless_term_by_def

    - -

    pp_sym_getprod

    +

    pp_sym_getprod

    Definition: @@ -7551,8 +7331,7 @@

    pp_sym_getprod

    - -

    pp_sym_to_str

    +

    pp_sym_to_str

    Definition: @@ -7577,8 +7356,7 @@

    pp_sym_to_str

    - -

    prealloc

    +

    prealloc

    Definition: @@ -7613,8 +7391,7 @@

    prealloc

    - -

    pregex_create

    +

    pregex_create

    Definition: @@ -7698,8 +7475,7 @@

    pregex_create

    - -

    pregex_find

    +

    pregex_find

    Definition: @@ -7732,8 +7508,7 @@

    pregex_find

    - -

    pregex_findall

    +

    pregex_findall

    Definition: @@ -7762,8 +7537,7 @@

    pregex_findall

    - -

    pregex_free

    +

    pregex_free

    Definition: @@ -7789,8 +7563,7 @@

    pregex_free

    - -

    pregex_match

    +

    pregex_match

    Definition: @@ -7814,8 +7587,7 @@

    pregex_match

    - -

    pregex_qmatch

    +

    pregex_qmatch

    Definition: @@ -7856,8 +7628,7 @@

    pregex_qmatch

    - -

    pregex_qreplace

    +

    pregex_qreplace

    Definition: @@ -7898,8 +7669,7 @@

    pregex_qreplace

    - -

    pregex_qsplit

    +

    pregex_qsplit

    Definition: @@ -7939,8 +7709,7 @@

    pregex_qsplit

    - -

    pregex_replace

    +

    pregex_replace

    Definition: @@ -7974,8 +7743,7 @@

    pregex_replace

    - -

    pregex_split

    +

    pregex_split

    Definition: @@ -8011,8 +7779,7 @@

    pregex_split

    - -

    pregex_splitall

    +

    pregex_splitall

    Definition: @@ -8042,8 +7809,7 @@

    pregex_splitall

    - -

    pstr_to_wcs

    +

    pstr_to_wcs

    Definition: @@ -8079,8 +7845,7 @@

    pstr_to_wcs

    - -

    pstrcasecmp

    +

    pstrcasecmp

    Definition: @@ -8108,8 +7873,7 @@

    pstrcasecmp

    - -

    pstrcatchar

    +

    pstrcatchar

    Definition: @@ -8139,8 +7903,7 @@

    pstrcatchar

    - -

    pstrcatstr

    +

    pstrcatstr

    Definition: @@ -8164,7 +7927,7 @@

    pstrcatstr

    append is the string to be appended at the end of str.

    -release_append frees the pointer provided as append automatically by +freesrc frees the pointer provided as append automatically by this function, if set to TRUE. This parameter has only a comfort-function.

    @@ -8177,8 +7940,7 @@

    pstrcatstr

    - -

    pstrdup

    +

    pstrdup

    Definition: @@ -8206,8 +7968,7 @@

    pstrdup

    - -

    pstrget

    +

    pstrget

    Definition: @@ -8231,8 +7992,7 @@

    pstrget

    - -

    pstrlen

    +

    pstrlen

    Definition: @@ -8260,8 +8020,7 @@

    pstrlen

    - -

    pstrltrim

    +

    pstrltrim

    Definition: @@ -8287,8 +8046,7 @@

    pstrltrim

    - -

    pstrlwr

    +

    pstrlwr

    Definition: @@ -8314,8 +8072,7 @@

    pstrlwr

    - -

    pstrncasecmp

    +

    pstrncasecmp

    Definition: @@ -8344,8 +8101,7 @@

    pstrncasecmp

    - -

    pstrncatstr

    +

    pstrncatstr

    Definition: @@ -8381,8 +8137,7 @@

    pstrncatstr

    - -

    pstrndup

    +

    pstrndup

    Definition: @@ -8418,8 +8173,7 @@

    pstrndup

    - -

    pstrput

    +

    pstrput

    Definition: @@ -8454,8 +8208,7 @@

    pstrput

    - -

    pstrrender

    +

    pstrrender

    Definition: @@ -8502,8 +8255,7 @@

    pstrrender

    - -

    pstrreplace

    +

    pstrreplace

    Definition: @@ -8533,8 +8285,7 @@

    pstrreplace

    - -

    pstrrtrim

    +

    pstrrtrim

    Definition: @@ -8560,8 +8311,7 @@

    pstrrtrim

    - -

    pstrsplit

    +

    pstrsplit

    Definition: @@ -8593,8 +8343,7 @@

    pstrsplit

    - -

    pstrtrim

    +

    pstrtrim

    Definition: @@ -8620,8 +8369,7 @@

    pstrtrim

    - -

    pstrunescape

    +

    pstrunescape

    Definition: @@ -8705,8 +8453,7 @@

    pstrunescape

    - -

    pstrupr

    +

    pstrupr

    Definition: @@ -8732,8 +8479,7 @@

    pstrupr

    - -

    pvasprintf

    +

    pvasprintf

    Definition: @@ -8757,12 +8503,134 @@

    pvasprintf

    Returns the number of characters written, or -1 in error case.

    + +
    +

    + +

    pvm_create

    + +

    +Definition: +

    +
    +

    +pvm* pvm_create( void ) +

    +

    +

    +Usage: +

    +

    +Creates a new virtual machine. +

    + +
    +

    + +

    pvm_define

    + +

    +Definition: +

    +
    +

    +int pvm_define( pvm* vm, char* mn, pvmop op ) +

    +

    +

    +Usage: +

    +

    +Implements mnemonic mn with operational function op into vm. +

    +

    +Returns the operation's opcode, or a value < 0 on error. +

    + +
    +

    + +

    pvm_free

    + +

    +Definition: +

    +
    +

    +pvm* pvm_free( pvm* vm ) +

    +

    +

    +Usage: +

    +

    +Frees a virtual machine. +

    + +
    +

    + +

    pvm_init

    + +

    +Definition: +

    +
    +

    +pvm* pvm_init( pvm* vm ) +

    +

    +

    +Usage: +

    +

    +Initializes the virtual machine vm. +

    + +
    +

    + +

    pvm_prog_run

    + +

    +Definition: +

    +
    +

    +void pvm_prog_run( pvmprog* prog ) +

    +

    +

    +Usage: +

    +

    +Run vm +

    + +
    +

    + +

    pvm_reset

    + +

    +Definition: +

    +
    +

    +pvm* pvm_reset( pvm* vm ) +

    +

    +

    +Usage: +

    +

    +Resets a virtual machine vm. +

    - -

    pwcs_to_str

    +

    pwcs_to_str

    Definition: @@ -8796,8 +8664,7 @@

    pwcs_to_str

    - -

    pwcscatchar

    +

    pwcscatchar

    Definition: @@ -8826,8 +8693,7 @@

    pwcscatchar

    - -

    pwcscatstr

    +

    pwcscatstr

    Definition: @@ -8859,8 +8725,7 @@

    pwcscatstr

    - -

    pwcsdup

    +

    pwcsdup

    Definition: @@ -8888,8 +8753,7 @@

    pwcsdup

    - -

    pwcsget

    +

    pwcsget

    Definition: @@ -8913,8 +8777,7 @@

    pwcsget

    - -

    pwcslen

    +

    pwcslen

    Definition: @@ -8938,8 +8801,7 @@

    pwcslen

    - -

    pwcsncatstr

    +

    pwcsncatstr

    Definition: @@ -8971,8 +8833,7 @@

    pwcsncatstr

    - -

    pwcsndup

    +

    pwcsndup

    Definition: @@ -9011,8 +8872,7 @@

    pwcsndup

    - -

    pwcsput

    +

    pwcsput

    Definition: @@ -9049,8 +8909,7 @@

    pwcsput

    - -

    pwhich

    +

    pwhich

    Definition: @@ -9083,8 +8942,7 @@

    pwhich

    - -

    u8_char

    +

    u8_char

    Definition: @@ -9108,8 +8966,7 @@

    u8_char

    - -

    u8_isutf

    +

    u8_isutf

    Definition: @@ -9133,8 +8990,7 @@

    u8_isutf

    - -

    u8_move

    +

    u8_move

    Definition: @@ -9163,8 +9019,7 @@

    u8_move

    - -

    u8_parse_char

    +

    u8_parse_char

    Definition: @@ -9192,8 +9047,7 @@

    u8_parse_char

    - -

    u8_seqlen

    +

    u8_seqlen

    Definition: @@ -9218,6 +9072,6 @@

    u8_seqlen

    - - + + diff --git a/doc/phorward.t2t b/doc/phorward.t2t index 5398a220..d1c8ca75 100644 --- a/doc/phorward.t2t +++ b/doc/phorward.t2t @@ -1,6 +1,6 @@ Phorward Toolkit Reference Manual -libphorward 0.19.0 -February 2017 +libphorward 0.20.0 +November 2017 %!preproc(xhtml): '@([a-zA-Z0-9_]+)((\(\))?)' '[\1\2 #fn_\1]' %!preproc(xhtml): '%NEED:(\d+)' "''' " diff --git a/doc/ref.t2t b/doc/ref.t2t index b5965aed..38543477 100644 --- a/doc/ref.t2t +++ b/doc/ref.t2t @@ -2105,14 +2105,14 @@ with special compile-time flags provided for each pattern. On success, the function returns the allocated pointer to a plex-object. This must be freed later using [plex_free() #fn_plex_free]. %FUNCTION:END -%NEED:29 +%NEED:34 %FUNCTION:BEGIN === plex_define ===[fn_plex_define] **Definition:** %DEFINITION:BEGIN -pboolean plex_define( plex* lex, char* pat, int match_id, int flags ) +pregex_ptn* plex_define( plex* lex, char* pat, int match_id, int flags ) %DEFINITION:END **Usage:** @@ -2136,6 +2136,11 @@ compile-time flags of the plex-object provided at [plex_create() #fn_plex_create | PREGEX_COMP_NOERRORS | Don't report errors, and try to compile as much as possible | | PREGEX_COMP_INSENSITIVE | Parse regular expressions as case insensitive. | | PREGEX_COMP_STATIC | The regular expressions passed should be converted 1:1 as it where a string-constant. Any regex-specific symbols will be ignored and taken as they where escaped. | + + +Returns a pointer to the pattern object that just has been added. This allows +for changing e.g. the accept flag later on. In case of an error, the value +returned is NULL. %FUNCTION:END %NEED:15 %FUNCTION:BEGIN @@ -3156,7 +3161,7 @@ The preparation process includes: This function is only run internally. Don't call it if you're unsure ;)... %FUNCTION:END -%NEED:19 +%NEED:20 %FUNCTION:BEGIN === pp_lr_parse ===[fn_pp_lr_parse] @@ -3172,10 +3177,11 @@ Parses the string //str// using the grammar //grm// with a LALR(1) parser. Parsing stops at least when reading the zero terminator of //str//. -//ast// receives an allocated parray-object with items of //ppmatch// elements -that describe the produced abstract syntax tree. +//root// receives the root-node of the constructed abstract syntax tree as +an ppast object. //end// receives the position of the last character matched. + The function returns TRUE if no parse error occured. %FUNCTION:END %NEED:16 @@ -3807,7 +3813,7 @@ If this is (char*)NULL, the string is newly allocated. //append// is the string to be appended at the end of //str//. -//release_append// frees the pointer provided as //append// automatically by +//freesrc// frees the pointer provided as //append// automatically by this function, if set to TRUE. This parameter has only a comfort-function. Returns a char*-pointer to (possibly re-)allocated and appended string. @@ -4204,6 +4210,92 @@ Implementation and replacement for vasprintf. Returns the number of characters written, or -1 in error case. %FUNCTION:END +%NEED:11 +%FUNCTION:BEGIN +=== pvm_create ===[fn_pvm_create] + +**Definition:** + +%DEFINITION:BEGIN +pvm* pvm_create( void ) +%DEFINITION:END + +**Usage:** + +Creates a new virtual machine. +%FUNCTION:END +%NEED:13 +%FUNCTION:BEGIN +=== pvm_define ===[fn_pvm_define] + +**Definition:** + +%DEFINITION:BEGIN +int pvm_define( pvm* vm, char* mn, pvmop op ) +%DEFINITION:END + +**Usage:** + +Implements mnemonic //mn// with operational function //op// into //vm//. + +Returns the operation's opcode, or a value < 0 on error. +%FUNCTION:END +%NEED:11 +%FUNCTION:BEGIN +=== pvm_free ===[fn_pvm_free] + +**Definition:** + +%DEFINITION:BEGIN +pvm* pvm_free( pvm* vm ) +%DEFINITION:END + +**Usage:** + +Frees a virtual machine. +%FUNCTION:END +%NEED:11 +%FUNCTION:BEGIN +=== pvm_init ===[fn_pvm_init] + +**Definition:** + +%DEFINITION:BEGIN +pvm* pvm_init( pvm* vm ) +%DEFINITION:END + +**Usage:** + +Initializes the virtual machine //vm//. +%FUNCTION:END +%NEED:11 +%FUNCTION:BEGIN +=== pvm_prog_run ===[fn_pvm_prog_run] + +**Definition:** + +%DEFINITION:BEGIN +void pvm_prog_run( pvmprog* prog ) +%DEFINITION:END + +**Usage:** + +Run vm +%FUNCTION:END +%NEED:11 +%FUNCTION:BEGIN +=== pvm_reset ===[fn_pvm_reset] + +**Definition:** + +%DEFINITION:BEGIN +pvm* pvm_reset( pvm* vm ) +%DEFINITION:END + +**Usage:** + +Resets a virtual machine //vm//. +%FUNCTION:END %NEED:22 %FUNCTION:BEGIN === pwcs_to_str ===[fn_pwcs_to_str] diff --git a/src/phorward.h b/src/phorward.h index 6f3a68d7..79bbe5cd 100644 --- a/src/phorward.h +++ b/src/phorward.h @@ -108,7 +108,7 @@ typedef char pboolean; -#define LIBPHORWARD_VERSION "0.20.0 devel" +#define LIBPHORWARD_VERSION "0.20.0" diff --git a/src/version.h b/src/version.h index dc029f6e..036c3af3 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LIBPHORWARD_VERSION "0.20.0 devel" +#define LIBPHORWARD_VERSION "0.20.0" diff --git a/tools/Makefile.gnu b/tools/Makefile.gnu index 382bf72d..2e5d3523 100644 --- a/tools/Makefile.gnu +++ b/tools/Makefile.gnu @@ -15,7 +15,7 @@ clean: -rm pregex.o -rm ppgram2c.o -rm pvm.o - -rm utils.o + -rm util.o -rm $(PLEX) $(PPARSE) $(PREGEX) $(PPGRAM2C) $(PVM) $(PLEX): plex.o util.o $(LIBPHORWARD)