summaryrefslogtreecommitdiff
path: root/libsieve/sieve.y
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2008-07-18 22:07:56 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2008-07-18 22:07:56 +0000
commite5b11edf9793f392bc9da33ddc4fd0639376df43 (patch)
tree63770e11d7a7ea9c476fde6dfb38852f8af1edca /libsieve/sieve.y
parent69b1db83fd54b9b3caf44c208506f1f56a3d6f47 (diff)
downloadmailutils-e5b11edf9793f392bc9da33ddc4fd0639376df43.tar.gz
mailutils-e5b11edf9793f392bc9da33ddc4fd0639376df43.tar.bz2
Finish namespace cleanup in libsieve.
* libsieve/actions.c, libsieve/comparator.c, libsieve/conf.c, libsieve/load.c, libsieve/prog.c, libsieve/register.c, libsieve/relational.c, libsieve/require.c, libsieve/runtime.c, libsieve/sieve.h, libsieve/sieve.l, libsieve/sieve.y, libsieve/tests.c, libsieve/util.c: Prefix all external identifiers, that are not intended for use by application programs, with mu_sv_.
Diffstat (limited to 'libsieve/sieve.y')
-rw-r--r--libsieve/sieve.y151
1 files changed, 88 insertions, 63 deletions
diff --git a/libsieve/sieve.y b/libsieve/sieve.y
index 0a0d766f9..edf60395c 100644
--- a/libsieve/sieve.y
+++ b/libsieve/sieve.y
@@ -26,10 +26,13 @@
#include <assert.h>
#include <sieve.h>
-mu_sieve_machine_t sieve_machine;
-int sieve_error_count;
+mu_sieve_machine_t mu_sieve_machine;
+int mu_sieve_error_count;
static void branch_fixup (size_t start, size_t end);
+static int _sieve_default_error_printer (void *, const char *, va_list);
+static int _sieve_default_parse_error (void *, const char *, int,
+ const char *, va_list);
%}
%union {
@@ -83,32 +86,32 @@ statement : REQUIRE stringorlist ';'
/* All the items in $2 are registered in memory_pool,
so we don't free them */
mu_list_destroy (&$2);
- $$ = sieve_machine->pc;
+ $$ = mu_sieve_machine->pc;
}
| action ';'
/* 1 2 3 4 */
| if cond block else_part
{
- sieve_machine->prog[$2].pc = $4.begin - $2 - 1;
+ mu_sieve_machine->prog[$2].pc = $4.begin - $2 - 1;
if ($4.branch)
- branch_fixup ($4.branch, sieve_machine->pc);
+ branch_fixup ($4.branch, mu_sieve_machine->pc);
}
;
if : IF
{
- $$ = sieve_machine->pc;
+ $$ = mu_sieve_machine->pc;
}
;
else_part : maybe_elsif
{
if ($1.begin)
- sieve_machine->prog[$1.cond].pc =
- sieve_machine->pc - $1.cond - 1;
+ mu_sieve_machine->prog[$1.cond].pc =
+ mu_sieve_machine->pc - $1.cond - 1;
else
{
- $$.begin = sieve_machine->pc;
+ $$.begin = mu_sieve_machine->pc;
$$.branch = 0;
}
}
@@ -116,8 +119,8 @@ else_part : maybe_elsif
{
if ($1.begin)
{
- sieve_machine->prog[$1.cond].pc = $3 - $1.cond - 1;
- sieve_machine->prog[$2].pc = $1.branch;
+ mu_sieve_machine->prog[$1.cond].pc = $3 - $1.cond - 1;
+ mu_sieve_machine->prog[$2].pc = $1.branch;
$$.begin = $1.begin;
$$.branch = $2;
}
@@ -144,8 +147,8 @@ elsif_branch : elsif begin cond block
}
| elsif_branch elsif begin cond block
{
- sieve_machine->prog[$1.cond].pc = $3 - $1.cond - 1;
- sieve_machine->prog[$2].pc = $1.branch;
+ mu_sieve_machine->prog[$1.cond].pc = $3 - $1.cond - 1;
+ mu_sieve_machine->prog[$2].pc = $1.branch;
$$.begin = $1.begin;
$$.branch = $2;
$$.cond = $4;
@@ -154,17 +157,17 @@ elsif_branch : elsif begin cond block
elsif : ELSIF
{
- sieve_code_instr (_mu_sv_instr_branch);
- $$ = sieve_machine->pc;
- sieve_code_number (0);
+ mu_sv_code_instr (_mu_sv_instr_branch);
+ $$ = mu_sieve_machine->pc;
+ mu_sv_code_number (0);
}
;
else : ELSE
{
- sieve_code_instr (_mu_sv_instr_branch);
- $$ = sieve_machine->pc;
- sieve_code_number (0);
+ mu_sv_code_instr (_mu_sv_instr_branch);
+ $$ = mu_sieve_machine->pc;
+ mu_sv_code_number (0);
}
;
@@ -176,17 +179,17 @@ block : '{' list '}'
testlist : cond_expr
{
- $$.start = $$.end = sieve_machine->pc;
- if (sieve_code_instr (_mu_sv_instr_brz)
- || sieve_code_number (0))
+ $$.start = $$.end = mu_sieve_machine->pc;
+ if (mu_sv_code_instr (_mu_sv_instr_brz)
+ || mu_sv_code_number (0))
YYERROR;
}
| testlist ',' cond_expr
{
- sieve_machine->prog[$1.end+1].pc = sieve_machine->pc;
- $1.end = sieve_machine->pc;
- if (sieve_code_instr (_mu_sv_instr_brz)
- || sieve_code_number (0))
+ mu_sieve_machine->prog[$1.end+1].pc = mu_sieve_machine->pc;
+ $1.end = mu_sieve_machine->pc;
+ if (mu_sv_code_instr (_mu_sv_instr_brz)
+ || mu_sv_code_number (0))
YYERROR;
$$ = $1;
}
@@ -194,9 +197,9 @@ testlist : cond_expr
cond : cond_expr
{
- sieve_code_instr (_mu_sv_instr_brz);
- $$ = sieve_machine->pc;
- sieve_code_number (0);
+ mu_sv_code_instr (_mu_sv_instr_brz);
+ $$ = mu_sieve_machine->pc;
+ mu_sv_code_number (0);
}
;
@@ -204,40 +207,40 @@ cond_expr : test
{ /* to placate bison */ }
| ANYOF '(' testlist ')'
{
- sieve_code_anyof ($3.start);
+ mu_sv_code_anyof ($3.start);
}
| ALLOF '(' testlist ')'
{
- sieve_code_allof ($3.start);
+ mu_sv_code_allof ($3.start);
}
| NOT cond_expr
{
- if (sieve_code_instr (_mu_sv_instr_not))
+ if (mu_sv_code_instr (_mu_sv_instr_not))
YYERROR;
}
;
begin : /* empty */
{
- $$ = sieve_machine->pc;
+ $$ = mu_sieve_machine->pc;
}
;
test : command
{
- mu_sieve_register_t *reg = mu_sieve_test_lookup (sieve_machine,
- $1.ident);
- $$ = sieve_machine->pc;
+ mu_sieve_register_t *reg =
+ mu_sieve_test_lookup (mu_sieve_machine, $1.ident);
+ $$ = mu_sieve_machine->pc;
if (!reg)
- sieve_compile_error (&mu_sieve_locus,
+ mu_sv_compile_error (&mu_sieve_locus,
_("unknown test: %s"),
$1.ident);
else if (!reg->required)
- sieve_compile_error (&mu_sieve_locus,
+ mu_sv_compile_error (&mu_sieve_locus,
_("test `%s' has not been required"),
$1.ident);
- else if (sieve_code_test (reg, $1.args))
+ else if (mu_sv_code_test (reg, $1.args))
YYERROR;
}
;
@@ -251,19 +254,19 @@ command : IDENT maybe_arglist
action : command
{
- mu_sieve_register_t *reg = mu_sieve_action_lookup (sieve_machine,
- $1.ident);
+ mu_sieve_register_t *reg =
+ mu_sieve_action_lookup (mu_sieve_machine, $1.ident);
- $$ = sieve_machine->pc;
+ $$ = mu_sieve_machine->pc;
if (!reg)
- sieve_compile_error (&mu_sieve_locus,
+ mu_sv_compile_error (&mu_sieve_locus,
_("unknown action: %s"),
$1.ident);
else if (!reg->required)
- sieve_compile_error (&mu_sieve_locus,
+ mu_sv_compile_error (&mu_sieve_locus,
_("action `%s' has not been required"),
$1.ident);
- else if (sieve_code_action (reg, $1.args))
+ else if (mu_sv_code_action (reg, $1.args))
YYERROR;
}
;
@@ -340,7 +343,7 @@ slist : STRING
int
yyerror (char *s)
{
- sieve_compile_error (&mu_sieve_locus, "%s", s);
+ mu_sv_compile_error (&mu_sieve_locus, "%s", s);
return 0;
}
@@ -587,22 +590,22 @@ string_comp (const void *item, const void *value)
void
mu_sieve_machine_begin (mu_sieve_machine_t mach, const char *file)
{
- sieve_machine = mach;
- sieve_error_count = 0;
- sieve_code_instr (NULL);
+ mu_sieve_machine = mach;
+ mu_sieve_error_count = 0;
+ mu_sv_code_instr (NULL);
mu_list_create (&mach->source_list);
mu_list_set_comparator (mach->source_list, string_comp);
- sieve_register_standard_actions (mach);
- sieve_register_standard_tests (mach);
- sieve_register_standard_comparators (mach);
+ mu_sv_register_standard_actions (mach);
+ mu_sv_register_standard_tests (mach);
+ mu_sv_register_standard_comparators (mach);
}
void
mu_sieve_machine_finish (mu_sieve_machine_t mach)
{
- sieve_code_instr (NULL);
+ mu_sv_code_instr (NULL);
}
int
@@ -612,12 +615,12 @@ mu_sieve_compile (mu_sieve_machine_t mach, const char *name)
mu_sieve_machine_begin (mach, name);
- if (sieve_lex_begin (name) == 0)
+ if (mu_sv_lex_begin (name) == 0)
{
rc = yyparse ();
- if (sieve_error_count)
+ if (mu_sieve_error_count)
rc = 1;
- sieve_lex_finish ();
+ mu_sv_lex_finish ();
}
else
rc = 1;
@@ -637,12 +640,12 @@ mu_sieve_compile_buffer (mu_sieve_machine_t mach,
mu_sieve_machine_begin (mach, fname);
- if (sieve_lex_begin_string (buf, bufsize, fname, line) == 0)
+ if (mu_sv_lex_begin_string (buf, bufsize, fname, line) == 0)
{
rc = yyparse ();
- if (sieve_error_count)
+ if (mu_sieve_error_count)
rc = 1;
- sieve_lex_finish ();
+ mu_sv_lex_finish ();
}
else
rc = 1;
@@ -656,16 +659,38 @@ mu_sieve_compile_buffer (mu_sieve_machine_t mach,
static void
_branch_fixup (size_t start, size_t end)
{
- size_t prev = sieve_machine->prog[start].pc;
+ size_t prev = mu_sieve_machine->prog[start].pc;
if (!prev)
return;
branch_fixup (prev, end);
- sieve_machine->prog[prev].pc = end - prev - 1;
+ mu_sieve_machine->prog[prev].pc = end - prev - 1;
}
-void
+static void
branch_fixup (size_t start, size_t end)
{
_branch_fixup (start, end);
- sieve_machine->prog[start].pc = end - start - 1;
+ mu_sieve_machine->prog[start].pc = end - start - 1;
+}
+
+static int
+_sieve_default_error_printer (void *unused, const char *fmt, va_list ap)
+{
+ return mu_verror (fmt, ap);
}
+
+static int
+_sieve_default_parse_error (void *unused, const char *filename, int lineno,
+ const char *fmt, va_list ap)
+{
+ mu_debug_t debug;
+
+ mu_diag_get_debug (&debug);
+ if (filename)
+ mu_debug_set_locus (debug, filename, lineno);
+ mu_diag_vprintf (MU_DIAG_ERROR, fmt, ap);
+ mu_diag_printf (MU_DIAG_ERROR, "\n");
+ mu_debug_set_locus (debug, NULL, 0);
+ return 0;
+}
+

Return to:

Send suggestions and report system problems to the System administrator.