| | |
| | | * @return |
| | | */ |
| | | static int skipDigit(lex_state_t * state) { |
| | | if (!iseos(state) && isdigit(state->pos[0])) { |
| | | if (!iseos(state) && isdigit((uint8_t)(state->pos[0]))) { |
| | | state->pos++; |
| | | return SKIP_OK; |
| | | } else { |
| | |
| | | */ |
| | | static int skipNumbers(lex_state_t * state) { |
| | | int someNumbers = 0; |
| | | while (!iseos(state) && isdigit(state->pos[0])) { |
| | | while (!iseos(state) && isdigit((uint8_t)(state->pos[0]))) { |
| | | state->pos++; |
| | | someNumbers++; |
| | | } |
| | |
| | | */ |
| | | static int skipAlpha(lex_state_t * state) { |
| | | int someLetters = 0; |
| | | while (!iseos(state) && isalpha(state->pos[0])) { |
| | | while (!iseos(state) && isalpha((uint8_t)(state->pos[0]))) { |
| | | state->pos++; |
| | | someLetters++; |
| | | } |
| | |
| | | */ |
| | | static int skipProgramMnemonic(lex_state_t * state) { |
| | | const char * startPos = state->pos; |
| | | if (!iseos(state) && isalpha(state->pos[0])) { |
| | | if (!iseos(state) && isalpha((uint8_t)(state->pos[0]))) { |
| | | state->pos++; |
| | | while (!iseos(state) && (isalnum(state->pos[0]) || ischr(state, '_'))) { |
| | | while (!iseos(state) && (isalnum((uint8_t)(state->pos[0])) || ischr(state, '_'))) { |
| | | state->pos++; |
| | | } |
| | | } |
| | |
| | | int scpiLex_CharacterProgramData(lex_state_t * state, scpi_token_t * token) { |
| | | token->ptr = state->pos; |
| | | |
| | | if (!iseos(state) && isalpha(state->pos[0])) { |
| | | if (!iseos(state) && isalpha((uint8_t)(state->pos[0]))) { |
| | | state->pos++; |
| | | while (!iseos(state) && (isalnum(state->pos[0]) || ischr(state, '_'))) { |
| | | while (!iseos(state) && (isalnum((uint8_t)(state->pos[0])) || ischr(state, '_'))) { |
| | | state->pos++; |
| | | } |
| | | } |
| | |
| | | /* 7.7.4 <NONDECIMAL NUMERIC PROGRAM DATA> */ |
| | | static int skipHexNum(lex_state_t * state) { |
| | | int someNumbers = 0; |
| | | while (!iseos(state) && isxdigit(state->pos[0])) { |
| | | while (!iseos(state) && isxdigit((uint8_t)(state->pos[0]))) { |
| | | state->pos++; |
| | | someNumbers++; |
| | | } |
| | |
| | | state->pos++; |
| | | |
| | | for (; i > 0; i--) { |
| | | if (!iseos(state) && isdigit(state->pos[0])) { |
| | | if (!iseos(state) && isdigit((uint8_t)(state->pos[0]))) { |
| | | arbitraryBlockLength *= 10; |
| | | arbitraryBlockLength += (state->pos[0] - '0'); |
| | | state->pos++; |