X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=fml%2Ffmlp.h;h=54214c4d0390d1a836f227bde9957d1102d06dd2;hb=25db261b6bbbfcc7bc26f679f195b51d31b9d7d7;hp=d926466a032525c371aa54b6df7f71a2e4951397;hpb=8467171ebdb5f018740de8d82149c8ccc53d2815;p=egate.git diff --git a/fml/fmlp.h b/fml/fmlp.h index d926466..54214c4 100644 --- a/fml/fmlp.h +++ b/fml/fmlp.h @@ -1,8 +1,62 @@ /* + * Copyright (c) 1995, the EUROPAGATE consortium (see below). + * + * The EUROPAGATE consortium members are: + * + * University College Dublin + * Danmarks Teknologiske Videnscenter + * An Chomhairle Leabharlanna + * Consejo Superior de Investigaciones Cientificas + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of EUROPAGATE or the project partners may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * 3. Users of this software (implementors and gateway operators) agree to + * inform the EUROPAGATE consortium of their use of the software. This + * information will be used to evaluate the EUROPAGATE project and the + * software, and to plan further developments. The consortium may use + * the information in later publications. + * + * 4. Users of this software agree to make their best efforts, when + * documenting their use of the software, to acknowledge the EUROPAGATE + * consortium, and the role played by the software in their work. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE + * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF + * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND + * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + * USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ +/* * FML interpreter. Europagate, 1995 * * $Log: fmlp.h,v $ - * Revision 1.10 1995/02/23 08:32:06 adam + * Revision 1.13 1995/05/16 09:39:34 adam + * LICENSE. + * + * Revision 1.12 1995/03/02 08:06:05 adam + * Fml function strsub implemented. New test files marc[45].fml. + * New test options in fmltest. + * + * Revision 1.11 1995/02/27 09:01:21 adam + * Regular expression support. Argument passing by name option. New FML + * function strlen. + * + * Revision 1.10 1995/02/23 08:32:06 adam * Changed header. * * Revision 1.8 1995/02/10 18:15:52 adam @@ -64,12 +118,14 @@ struct fml_node *fml_tokenize (Fml fml); struct fml_node *fml_node_alloc (Fml fml); struct fml_atom *fml_atom_alloc (Fml fml, char *str); int fml_atom_str (struct fml_atom *a, char *str); +int fml_atom_len (struct fml_atom *a); void fml_atom_strx (struct fml_atom *a, char *str, int max); int fml_atom_val (struct fml_atom *a); void fml_node_delete (Fml fml, struct fml_node *fn); struct fml_node *fml_node_copy (Fml fml, struct fml_node *fn); struct fml_node *fml_mk_node_val (Fml fml, int val); int fml_atom_cmp (Fml fml, struct fml_atom *a1, struct fml_atom *a2); +struct fml_atom *fml_atom_strsub (Fml fml, struct fml_atom *a, int o, int l); struct token { int kind; @@ -123,6 +179,7 @@ void fml_node_stat (Fml fml); #define FML_CPREFIX 11 #define FML_BINARY 12 #define FML_BIN 13 +#define FML_CODE 14 void fml_rel_init (Fml fml); void fml_arit_init (Fml fml); @@ -131,6 +188,7 @@ void fml_str_init (Fml fml); void fml_lr_values (Fml fml, struct fml_node *l, int *left_val, struct fml_node *r, int *right_val); void fml_cmd_lex (struct fml_node **np, struct token *tp); +void fml_cmd_lex_s (struct fml_node **np, struct token *tp, int esc_stop); void fml_init_token (struct token *tp, Fml fml); void fml_del_token (struct token *tp, Fml fml); struct fml_node *fml_expr_term (Fml fml, struct fml_node **lp,