Skip to content
Snippets Groups Projects
Commit b4476c72 authored by Niels Möller's avatar Niels Möller
Browse files

* tools/sexp-conv.c (struct sexp_parser): Renamed struct (was

struct sexp_parse_state). Added input pointer. Updated users to
not pass around both parser and input.
(sexp_check_token): handle token == 0.
(sexp_parse): Simplified a little by calling sexp_check_token
unconditionally.

* tools/sexp-conv.c (sexp_convert_string): Deleted function.
(sexp_skip_token): Likewise.

* tools/sexp-conv.c (enum sexp_token): New constant SEXP_DISPLAY.
Start constants from 1, to keep 0 free for special uses.
(struct sexp_parse_state): New struct for keeping track of parser
state.
(sexp_parse_init): New function.
(sexp_check_token): New function, replacing sexp_skip_token.
(sexp_parse): New function.
(sexp_convert_item): Simplified by using sexp_parse.
(sexp_convert_list): Use sexp_parse.
(main): Likewise.

Rev: src/nettle/tools/sexp-conv.c:1.10
parent 0dcdec81
No related branches found
No related tags found
No related merge requests found
...@@ -603,8 +603,7 @@ sexp_check_token(struct sexp_parser *parser, ...@@ -603,8 +603,7 @@ sexp_check_token(struct sexp_parser *parser,
sexp_get_token(parser->input, sexp_get_token(parser->input,
parser->transport ? SEXP_CANONICAL : parser->mode); parser->transport ? SEXP_CANONICAL : parser->mode);
/* FIXME: Handle token == 0 meaning any. */ if (token && parser->input->token != token)
if (parser->input->token != token)
die("Syntax error.\n"); die("Syntax error.\n");
} }
...@@ -620,12 +619,10 @@ sexp_parse(struct sexp_parser *parser) ...@@ -620,12 +619,10 @@ sexp_parse(struct sexp_parser *parser)
{ {
for (;;) for (;;)
{ {
if (!parser->expected) sexp_check_token(parser, parser->expected);
sexp_get_token(parser->input,
parser->transport ? SEXP_CANONICAL : parser->mode); if (parser->expected)
else
{ {
sexp_check_token(parser, parser->expected);
parser->expected = 0; parser->expected = 0;
if (parser->input->token == SEXP_STRING) if (parser->input->token == SEXP_STRING)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment