2020-07-02 23:12:13

by Luc Van Oostenryck

[permalink] [raw]
Subject: [PATCH 14/15] cleanup: move parsing helpers to parse.c

lib.c contains 2-3 helpers fro parsing. Move these to parse.c.

Signed-off-by: Luc Van Oostenryck <[email protected]>
---
lib.c | 38 --------------------------------------
parse.c | 38 ++++++++++++++++++++++++++++++++++++++
2 files changed, 38 insertions(+), 38 deletions(-)

diff --git a/lib.c b/lib.c
index fd1fe6cb3ba5..f512be2e1a43 100644
--- a/lib.c
+++ b/lib.c
@@ -50,44 +50,6 @@
#include "bits.h"


-struct token *skip_to(struct token *token, int op)
-{
- while (!match_op(token, op) && !eof_token(token))
- token = token->next;
- return token;
-}
-
-static struct token bad_token = { .pos.type = TOKEN_BAD };
-struct token *expect(struct token *token, int op, const char *where)
-{
- if (!match_op(token, op)) {
- if (token != &bad_token) {
- bad_token.next = token;
- sparse_error(token->pos, "Expected %s %s", show_special(op), where);
- sparse_error(token->pos, "got %s", show_token(token));
- }
- if (op == ';')
- return skip_to(token, op);
- return &bad_token;
- }
- return token->next;
-}
-
-///
-// issue an error message on new parsing errors
-// @token: the current token
-// @errmsg: the error message
-// If the current token is from a previous error, an error message
-// has already been issued, so nothing more is done.
-// Otherwise, @errmsg is displayed followed by the current token.
-void unexpected(struct token *token, const char *errmsg)
-{
- if (token == &bad_token)
- return;
- sparse_error(token->pos, "%s", errmsg);
- sparse_error(token->pos, "got %s", show_token(token));
-}
-
unsigned int hexval(unsigned int c)
{
int retval = 256;
diff --git a/parse.c b/parse.c
index 70d8b237ce5e..cea208395090 100644
--- a/parse.c
+++ b/parse.c
@@ -655,6 +655,44 @@ void init_parser(int stream)
}


+struct token *skip_to(struct token *token, int op)
+{
+ while (!match_op(token, op) && !eof_token(token))
+ token = token->next;
+ return token;
+}
+
+static struct token bad_token = { .pos.type = TOKEN_BAD };
+struct token *expect(struct token *token, int op, const char *where)
+{
+ if (!match_op(token, op)) {
+ if (token != &bad_token) {
+ bad_token.next = token;
+ sparse_error(token->pos, "Expected %s %s", show_special(op), where);
+ sparse_error(token->pos, "got %s", show_token(token));
+ }
+ if (op == ';')
+ return skip_to(token, op);
+ return &bad_token;
+ }
+ return token->next;
+}
+
+///
+// issue an error message on new parsing errors
+// @token: the current token
+// @errmsg: the error message
+// If the current token is from a previous error, an error message
+// has already been issued, so nothing more is done.
+// Otherwise, @errmsg is displayed followed by the current token.
+void unexpected(struct token *token, const char *errmsg)
+{
+ if (token == &bad_token)
+ return;
+ sparse_error(token->pos, "%s", errmsg);
+ sparse_error(token->pos, "got %s", show_token(token));
+}
+
// Add a symbol to the list of function-local symbols
static void fn_local_symbol(struct symbol *sym)
{
--
2.27.0