Feature #9099 » 0001-keywords-parse.y-keyord-lambda.patch
defs/keywords | ||
---|---|---|
%{
|
||
%{ /* -*- coding: utf-8; -*- */
|
||
struct kwtable {const char *name; int id[2]; enum lex_state_e state;};
|
||
const struct kwtable *rb_reserved_word(const char *, unsigned int);
|
||
#ifndef RIPPER
|
||
... | ... | |
when, {keyword_when, keyword_when}, EXPR_VALUE
|
||
while, {keyword_while, modifier_while}, EXPR_VALUE
|
||
yield, {keyword_yield, keyword_yield}, EXPR_ARG
|
||
λ, {keyword_lambda, keyword_lambda}, EXPR_ENDFN
|
||
%%
|
||
#endif
|
parse.y | ||
---|---|---|
keyword__LINE__
|
||
keyword__FILE__
|
||
keyword__ENCODING__
|
||
keyword_lambda
|
||
%token <id> tIDENTIFIER tFID tGVAR tIVAR tCONSTANT tCVAR tLABEL
|
||
%token <node> tINTEGER tFLOAT tRATIONAL tIMAGINARY tSTRING_CONTENT tCHAR
|
||
... | ... | |
{
|
||
$$ = $2;
|
||
}
|
||
| keyword_lambda lambda
|
||
{
|
||
$$ = $2;
|
||
}
|
||
| k_if expr_value then
|
||
compstmt
|
||
if_tail
|
||
... | ... | |
return tLABEL;
|
||
}
|
||
}
|
||
if (mb == ENC_CODERANGE_7BIT && !IS_lex_state(EXPR_DOT)) {
|
||
if ((mb == ENC_CODERANGE_7BIT ||
|
||
rb_enc_to_index(parser->enc) == ENCINDEX_UTF_8) &&
|
||
!IS_lex_state(EXPR_DOT)) {
|
||
const struct kwtable *kw;
|
||
/* See if it is a reserved word. */
|
- « Previous
- 1
- 2
- 3
- Next »