Jan Breuer
2015-10-04 7dca581454fb426dd8233a39475877dab9b3e1a6
libscpi/src/lexer.c
@@ -771,12 +771,12 @@
/* 7.7.7 <EXPRESSION PROGRAM DATA> */
static int isProgramExpression(int c) {
    if ((c >= 0x20) && (c <= 0x7e)) {
        if ((c != 0x22)
                && (c != 0x23)
                && (c != 0x27)
                && (c != 0x28)
                && (c != 0x29)
                && (c != 0x3B)) {
        if ((c != '"')
                && (c != '#')
                && (c != '\'')
                && (c != '(')
                && (c != ')')
                && (c != ';')) {
            return 1;
        }
    }
@@ -865,6 +865,46 @@
}
/**
 * Detect token colon
 * @param state
 * @param token
 * @return
 */
int scpiLex_Colon(lex_state_t * state, scpi_token_t * token) {
    token->ptr = state->pos;
    if (skipChr(state, ':')) {
        token->len = 1;
        token->type = SCPI_TOKEN_COLON;
    } else {
        token->len = 0;
        token->type = SCPI_TOKEN_UNKNOWN;
    }
    return token->len;
}
/**
 * Detect specified character
 * @param state
 * @param token
 * @return
 */
int scpiLex_SpecificCharacter(lex_state_t * state, scpi_token_t * token, char chr) {
    token->ptr = state->pos;
    if (skipChr(state, chr)) {
        token->len = 1;
        token->type = SCPI_TOKEN_SPECIFIC_CHARACTER;
    } else {
        token->len = 0;
        token->type = SCPI_TOKEN_UNKNOWN;
    }
    return token->len;
}
/**
 * Detect token New line
 * @param state
 * @param token
@@ -888,6 +928,3 @@
    return token->len;
}