diff options
Diffstat (limited to 'src/compose/parser.c')
-rw-r--r-- | src/compose/parser.c | 102 |
1 files changed, 51 insertions, 51 deletions
diff --git a/src/compose/parser.c b/src/compose/parser.c index 08018f2..69abc49 100644 --- a/src/compose/parser.c +++ b/src/compose/parser.c @@ -126,18 +126,18 @@ lex(struct scanner *s, union lvalue *val) { skip_more_whitespace_and_comments: /* Skip spaces. */ - while (is_space(peek(s))) - if (next(s) == '\n') + while (is_space(scanner_peek(s))) + if (scanner_next(s) == '\n') return TOK_END_OF_LINE; /* Skip comments. */ - if (chr(s, '#')) { - skip_to_eol(s); + if (scanner_chr(s, '#')) { + scanner_skip_to_eol(s); goto skip_more_whitespace_and_comments; } /* See if we're done. */ - if (eof(s)) return TOK_END_OF_FILE; + if (scanner_eof(s)) return TOK_END_OF_FILE; /* New token. */ s->token_line = s->line; @@ -145,14 +145,14 @@ skip_more_whitespace_and_comments: s->buf_pos = 0; /* LHS Keysym. */ - if (chr(s, '<')) { - while (peek(s) != '>' && !eol(s) && !eof(s)) - buf_append(s, next(s)); - if (!chr(s, '>')) { + if (scanner_chr(s, '<')) { + while (scanner_peek(s) != '>' && !scanner_eol(s) && !scanner_eof(s)) + scanner_buf_append(s, scanner_next(s)); + if (!scanner_chr(s, '>')) { scanner_err(s, "unterminated keysym literal"); return TOK_ERROR; } - if (!buf_append(s, '\0')) { + if (!scanner_buf_append(s, '\0')) { scanner_err(s, "keysym literal is too long"); return TOK_ERROR; } @@ -162,46 +162,46 @@ skip_more_whitespace_and_comments: } /* Colon. */ - if (chr(s, ':')) + if (scanner_chr(s, ':')) return TOK_COLON; - if (chr(s, '!')) + if (scanner_chr(s, '!')) return TOK_BANG; - if (chr(s, '~')) + if (scanner_chr(s, '~')) return TOK_TILDE; /* String literal. */ - if (chr(s, '\"')) { - while (!eof(s) && !eol(s) && peek(s) != '\"') { - if (chr(s, '\\')) { + if (scanner_chr(s, '\"')) { + while (!scanner_eof(s) && !scanner_eol(s) && scanner_peek(s) != '\"') { + if (scanner_chr(s, '\\')) { uint8_t o; - if (chr(s, '\\')) { - buf_append(s, '\\'); + if (scanner_chr(s, '\\')) { + scanner_buf_append(s, '\\'); } - else if (chr(s, '"')) { - buf_append(s, '"'); + else if (scanner_chr(s, '"')) { + scanner_buf_append(s, '"'); } - else if (chr(s, 'x') || chr(s, 'X')) { - if (hex(s, &o)) - buf_append(s, (char) o); + else if (scanner_chr(s, 'x') || scanner_chr(s, 'X')) { + if (scanner_hex(s, &o)) + scanner_buf_append(s, (char) o); else scanner_warn(s, "illegal hexadecimal escape sequence in string literal"); } - else if (oct(s, &o)) { - buf_append(s, (char) o); + else if (scanner_oct(s, &o)) { + scanner_buf_append(s, (char) o); } else { - scanner_warn(s, "unknown escape sequence (%c) in string literal", peek(s)); + scanner_warn(s, "unknown escape sequence (%c) in string literal", scanner_peek(s)); /* Ignore. */ } } else { - buf_append(s, next(s)); + scanner_buf_append(s, scanner_next(s)); } } - if (!chr(s, '\"')) { + if (!scanner_chr(s, '\"')) { scanner_err(s, "unterminated string literal"); return TOK_ERROR; } - if (!buf_append(s, '\0')) { + if (!scanner_buf_append(s, '\0')) { scanner_err(s, "string literal is too long"); return TOK_ERROR; } @@ -215,11 +215,11 @@ skip_more_whitespace_and_comments: } /* Identifier or include. */ - if (is_alpha(peek(s)) || peek(s) == '_') { + if (is_alpha(scanner_peek(s)) || scanner_peek(s) == '_') { s->buf_pos = 0; - while (is_alnum(peek(s)) || peek(s) == '_') - buf_append(s, next(s)); - if (!buf_append(s, '\0')) { + while (is_alnum(scanner_peek(s)) || scanner_peek(s) == '_') + scanner_buf_append(s, scanner_next(s)); + if (!scanner_buf_append(s, '\0')) { scanner_err(s, "identifier is too long"); return TOK_ERROR; } @@ -233,7 +233,7 @@ skip_more_whitespace_and_comments: } /* Discard rest of line. */ - skip_to_eol(s); + scanner_skip_to_eol(s); scanner_err(s, "unrecognized token"); return TOK_ERROR; @@ -243,68 +243,68 @@ static enum rules_token lex_include_string(struct scanner *s, struct xkb_compose_table *table, union lvalue *val_out) { - while (is_space(peek(s))) - if (next(s) == '\n') + while (is_space(scanner_peek(s))) + if (scanner_next(s) == '\n') return TOK_END_OF_LINE; s->token_line = s->line; s->token_column = s->column; s->buf_pos = 0; - if (!chr(s, '\"')) { + if (!scanner_chr(s, '\"')) { scanner_err(s, "include statement must be followed by a path"); return TOK_ERROR; } - while (!eof(s) && !eol(s) && peek(s) != '\"') { - if (chr(s, '%')) { - if (chr(s, '%')) { - buf_append(s, '%'); + while (!scanner_eof(s) && !scanner_eol(s) && scanner_peek(s) != '\"') { + if (scanner_chr(s, '%')) { + if (scanner_chr(s, '%')) { + scanner_buf_append(s, '%'); } - else if (chr(s, 'H')) { + else if (scanner_chr(s, 'H')) { const char *home = secure_getenv("HOME"); if (!home) { scanner_err(s, "%%H was used in an include statement, but the HOME environment variable is not set"); return TOK_ERROR; } - if (!buf_appends(s, home)) { + if (!scanner_buf_appends(s, home)) { scanner_err(s, "include path after expanding %%H is too long"); return TOK_ERROR; } } - else if (chr(s, 'L')) { + else if (scanner_chr(s, 'L')) { char *path = get_locale_compose_file_path(table->locale); if (!path) { scanner_err(s, "failed to expand %%L to the locale Compose file"); return TOK_ERROR; } - if (!buf_appends(s, path)) { + if (!scanner_buf_appends(s, path)) { free(path); scanner_err(s, "include path after expanding %%L is too long"); return TOK_ERROR; } free(path); } - else if (chr(s, 'S')) { + else if (scanner_chr(s, 'S')) { const char *xlocaledir = get_xlocaledir_path(); - if (!buf_appends(s, xlocaledir)) { + if (!scanner_buf_appends(s, xlocaledir)) { scanner_err(s, "include path after expanding %%S is too long"); return TOK_ERROR; } } else { - scanner_err(s, "unknown %% format (%c) in include statement", peek(s)); + scanner_err(s, "unknown %% format (%c) in include statement", scanner_peek(s)); return TOK_ERROR; } } else { - buf_append(s, next(s)); + scanner_buf_append(s, scanner_next(s)); } } - if (!chr(s, '\"')) { + if (!scanner_chr(s, '\"')) { scanner_err(s, "unterminated include statement"); return TOK_ERROR; } - if (!buf_append(s, '\0')) { + if (!scanner_buf_append(s, '\0')) { scanner_err(s, "include path is too long"); return TOK_ERROR; } |