Lines Matching refs:token

158  *   corresponding IDENTIFIER, NUMBER or STRING token.
163 * IDENTIFIER token
165 * [a,b] represented by the [ token,
166 * [b] represented by the , token,
167 * [] represented by the ] token,
171 * [a,b|T] represented by the [ token,
172 * [b|T] represented by the , token,
179 * subscript(X, [...]) represented by the [ token,
182 * 'with attributes'(X,[Args]) represented by { token,
186 * with(a,[Args]) represented by the { token
190 * apply(X,[Args]) represented by the ( token
249 token_desc token, /* current token */
250 prev_token, /* previous token */
251 next_token; /* next token */
338 * The current token is always cached in the parse_desc.
339 * Normally, we advance to the next token by calling Next_Token().
346 (void) lex_an(pd->nst, pd->sd, &pd->token); \
348 pd->token = pd->next_token; \
353 pd->prev_token = pd->token; \
354 if (pd->token.string == (char*) StreamLexAux(pd->nst)) { \
355 pd->prev_token.string = TempAlloc(pd->string_store, pd->token.term.val.nint + 1); \
356 Copy_Bytes(pd->prev_token.string, pd->token.string, pd->token.term.val.nint + 1); \
361 pd->next_token = pd->token; \
362 if (pd->token.string == (char*) StreamLexAux(pd->nst)) { \
363 pd->next_token.string = TempAlloc(pd->string_store, pd->token.term.val.nint + 1); \
364 Copy_Bytes(pd->next_token.string, pd->token.string, pd->token.term.val.nint + 1); \
366 pd->token = pd->prev_token;
368 #define IsClass(pd,cl) ((pd)->token.class == (cl))
369 #define IsChar(pd,char) ((pd)->token.term.val.nint == (char))
373 (pd->token.string)
376 (pd->token.term.val.nint)
388 pd->token.string = (s); \
389 pd->token.term.val.nint = (l); \
390 pd->token.class = IDENTIFIER;
548 tag_desc[tag_desc[TagType(pd->token.term.tag)].super].type_name,\
549 pd->token.pos);\
550 Flag_Type_Macro(pd, TagType(pd->token.term.tag)); \
551 if (IsInterval(pd->token.term.tag)) { \
552 Unmark_Interval_Raw(pd->token.term.val.ptr); \
553 if (!GoodInterval(pd->token.term.val.ptr)) \
556 *_pw = pd->token.term; \
563 Make_Term_Wrapper(pw, _pw, d_.string0, pd->token.pos); \
580 if (pd->token.class == CODES) {
584 Build_List(pw, phead, pd->token.pos);
585 Build_Integer(phead, TokenString(pd)[i], pd->token.pos);
588 } else /*if (pd->token.class == CHARS)*/ {
593 Build_List(pw, phead, pd->token.pos);
594 Build_Atom_Or_Nil(phead, char_did, pd->token.pos);
598 Build_Nil(pw, pd->token.pos);
653 switch(pd->token.class)
676 * function returns true if the current token cannot possibly follow a
680 * token happens to be an identifier, we look ahead a second token to
704 class = pd->token.class;
765 * and NEXT is a token that can't follow a complete term, this
782 || CantFollowTerm(pd->token.class)))
812 || IsDelimiter(pd->token.class)))
850 switch(pd->token.class)
864 pos = pd->token.pos;
871 Build_Nil(result, pd->token.pos);
888 return LexError(pd->token.class) ? pd->token.class : UNEXPECTED;
912 switch(pd->token.class)
934 return LexError(pd->token.class) ? pd->token.class : UNEXPECTED;
965 switch(pd->token.class)
987 return LexError(pd->token.class) ? pd->token.class : UNEXPECTED;
1030 pos = pd->token.pos;
1031 class = pd->token.class;
1045 switch(pd->token.class)
1053 Merge_Source_Pos(pos, pd->token.pos, pos);
1065 Build_Struct(&term, pw, d_.with2, pd->token.pos);
1098 tag_desc[pd->token.term.tag.kernel].arith_op[ARITH_CHGSIGN]
1099 (pd->token.term.val, &pd->token.term);
1100 Merge_Source_Pos(pos, pd->token.pos, pos);
1106 Merge_Source_Pos(pos, pd->token.pos, pos);
1200 Make_Var_Wrapper(result, pvar, pd->token.pos);
1216 Make_Term_Wrapper(result, pvar, d_anonymous_, pd->token.pos);
1226 Build_Struct(&term, pw, d_.apply2, pd->token.pos);
1246 Merge_Source_Pos(pos, pd->token.pos, pos);
1279 Merge_Source_Pos(pos, pd->token.pos, pos);
1326 return LexError(pd->token.class) ? pd->token.class : UNEXPECTED;
1350 switch(pd->token.class)
1356 _treat_like_atom_: /* (did0) - caution: may have wrong token in pd */
1374 Build_Struct_Or_List(&term, pw, OpiDid(in_op), pd->token.pos);
1401 Build_Struct(&term, pw, OpiDid(post_op), pd->token.pos);
1443 Build_Struct(&term, pw, d_.subscript, pd->token.pos);
1458 Build_Struct(&term, pw, d_.with_attributes2, pd->token.pos);
1470 source_pos_t pos = pd->token.pos;
1475 Merge_Source_Pos(pos, pd->token.pos, pd->token.pos);
1481 source_pos_t pos = pd->token.pos;
1486 Merge_Source_Pos(pos, pd->token.pos, pd->token.pos);
1500 return LexError(pd->token.class) ? pd->token.class : context_flags & PREBINFIRST ? PSUCCEED : UNEXPECTED;
1534 switch(pd->token.class)
1550 switch(pd->token.class)
1841 pd->token.class = pd->prev_token.class = pd->next_token.class = NO_TOKEN;