示例#1
0
accept_t lexer_read_syntax(struct lexer_book * bk)
{
    lexer_discard_white_space(bk);
    struct token *name = lexer_read_syntax_name(bk);

    if(strcmp("export", name->lexeme) == 0)
        return lexer_read_syntax_export(bk, name);
    else if(lexer_unquoted_look_ahead_count(bk, "=") > -1)
        return lexer_read_variable(bk, name);
    else {
        lexer_roll_back(bk, strlen(name->lexeme));
        lexer_report_error(bk, "Unrecognized keyword: %s.", name->lexeme);
    }

    return NO;
}
示例#2
0
文件: lexer.c 项目: NeilB879/cctools
int lexer_read_syntax_or_variable(struct lexer * lx)
{
	lexer_discard_white_space(lx);
	struct token *name = lexer_read_syntax_name(lx);

	if(strcmp("export", name->lexeme) == 0)
		return lexer_read_syntax_export(lx, name);
	else if(lexer_unquoted_look_ahead_count(lx, "=") > -1)
		return lexer_read_variable(lx, name);
	else {
		lexer_roll_back(lx, strlen(name->lexeme));
		lexer_report_error(lx, "Unrecognized keyword: %s.", name->lexeme);
	}

	return 1;
}