X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=fml%2Ffmlp.h;h=6c0232672c62dd34627cd7d699dbc074bdd165c2;hb=c3d25c24fb405af98c6879fa7f5f619ccc895151;hp=27e2c6bcc6fe286c87289fb0e5da2cbe5a51748a;hpb=3f6af0f3aa9f114cf562c28f2ed0b954e4c5d659;p=egate.git diff --git a/fml/fmlp.h b/fml/fmlp.h index 27e2c6b..6c02326 100644 --- a/fml/fmlp.h +++ b/fml/fmlp.h @@ -1,7 +1,18 @@ /* * FML interpreter. Europagate, 1995 * - * fmlp.h,v + * $Log: fmlp.h,v $ + * 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 * FML function 'strcmp' implemented. This function can be used to * test for existence of MARC fields. @@ -61,12 +72,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; @@ -120,6 +133,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); @@ -128,6 +142,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,