78 #define WS_IS_DECIMAL_DIGIT(ch) ('0' <= (ch) && (ch) <= '9') 81 #define WS_DECIMAL_TO_INT(ch) ((ch) - '0') 85 #define WS_IS_NON_ZERO_DIGIT(ch) ('1' <= (ch) && (ch) <= '9') 88 #define WS_IS_OCTAL_DIGIT(ch) ('0' <= (ch) && (ch) <= '7') 91 #define WS_OCTAL_TO_INT(ch) ((ch) - '0') 94 #define WS_IS_HEX_DIGIT(ch) (('0' <= (ch) && (ch) <= '9') \ 95 || ('a' <= (ch) && (ch) <= 'f') \ 96 || ('A' <= (ch) && (ch) <= 'F')) 99 #define WS_HEX_TO_INT(ch) \ 100 ('0' <= (ch) && (ch) <= '9' \ 102 : ('a' <= (ch) && (ch) <= 'f' \ 103 ? ((ch) - 'a' + 10) \ 108 #define WS_IS_IDENTIFIER_LETTER(ch) \ 109 (('a' <= (ch) && (ch) <= 'z') \ 110 || ('A' <= (ch) && (ch) <= 'Z') \ 151 #define N(n) n, sizeof(n) - 1 326 p[1] = (
unsigned char) ch2;
352 if (ch ==
'\n' || ch ==
'\r') {
383 if (ch ==
'\n' || ch ==
'\r') {
505 eof_in_string_literal:
510 if (ch == string_end_ch)
517 goto eof_in_string_literal;
559 for (i = 0; i < len; i++) {
561 goto eof_in_string_literal;
564 "malformed `\\%c' escape in " 565 "string literal", (
char)
type);
584 for (i = 1; i < limit; i++) {
586 goto eof_in_string_literal;
597 "unknown escape sequence `\\%c' in " 598 "string literal", (
char) ch);
661 p[len++] = (
unsigned char) ch;
722 goto number_error_memory;
724 }
else if (ch ==
'.' || ch ==
'e' || ch ==
'E') {
728 goto number_error_memory;
764 if (ch2 ==
'x' || ch2 ==
'X') {
769 goto number_error_memory;
777 goto number_error_memory;
788 "numeric constant with no digits");
807 goto number_error_memory;
815 goto number_error_memory;
830 if (ch2 ==
'.' || ch2 ==
'e' || ch2 ==
'E') {
836 goto number_error_memory;
865 "garbage found from the input stream: character=0x%x",
881 while (left < right) {
885 center = left + (right - left) / 2;
900 *token_return =
keywords[center].token;
949 p[0] = (
unsigned char) ch;
966 unsigned char buf[4];
971 if (ch !=
'e' && ch !=
'E') {
996 ws_src_error(compiler, 0,
"no decimal digits in exponent part");
1014 p[0] = (
unsigned char) ch;
1038 if (*result == HUGE_VAL || *result == -HUGE_VAL
1040 ws_src_error(compiler, 0,
"floating point literal too large");
static WsBool lookup_keyword(char *id, size_t len, int *token_return)
gw_assert(wtls_machine->packet_to_send !=NULL)
#define WS_IS_HEX_DIGIT(ch)
WsBool ws_stream_getc(WsStream *stream, WsUInt32 *ch_return)
size_t ws_buffer_len(WsBuffer *buffer)
void * ws_realloc(void *ptr, size_t size)
WsIeee754Result ws_ieee754_encode_single(double value, unsigned char *buf)
void ws_utf8_free(WsUtf8String *string)
static WsBool read_float_from_point(WsCompiler *compiler, WsBuffer *buffer, WsFloat *result)
static struct @117 keywords[]
WsBool ws_lexer_register_utf8(WsCompiler *compiler, WsUtf8String *string)
int ws_utf8_append_char(WsUtf8String *string, unsigned long ch)
WsUtf8String * ws_utf8_alloc()
void ws_stream_ungetc(WsStream *stream, WsUInt32 ch)
#define WS_OCTAL_TO_INT(ch)
#define WS_IS_DECIMAL_DIGIT(ch)
void ws_buffer_init(WsBuffer *buffer)
#define WS_IS_OCTAL_DIGIT(ch)
#define WS_HEX_TO_INT(ch)
void ws_buffer_uninit(WsBuffer *buffer)
WsBool ws_lexer_register_block(WsCompiler *compiler, void *ptr)
WsBool ws_buffer_append_space(WsBuffer *buffer, unsigned char **p, size_t size)
static WsBool read_float_from_exp(WsCompiler *compiler, WsBuffer *buffer, WsFloat *result)
#define WS_IS_IDENTIFIER_LETTER(ch)
static WsUInt32 buffer_to_int(WsCompilerPtr compiler, WsBuffer *buffer)
int ws_yy_lex(YYSTYPE *yylval, YYLTYPE *yylloc, WsCompiler *compiler)
#define WS_IS_NON_ZERO_DIGIT(ch)
void * ws_malloc(size_t size)
void ws_src_error(WsCompilerPtr compiler, WsUInt32 line, char *message,...)
void ws_error_memory(WsCompilerPtr compiler)
unsigned char * ws_buffer_ptr(WsBuffer *buffer)