pike.git / src / language.y

version» Context lines:

pike.git/src/language.y:106:   %token F_PRIVATE   %token F_PROGRAM_ID   %token F_PROTECTED   %token F_PUBLIC   %token F_RSH_EQ   %token F_STATIC   %token F_STATUS   %token F_STRING_ID   %token F_SUBSCRIPT   %token F_SUB_EQ + %token F_TYPEOF   %token F_VAL_LVAL   %token F_VARARGS   %token F_VOID_ID   %token F_WHILE   %token F_XOR_EQ      %token F_MAX_INSTR      %right '='   %right '?'
pike.git/src/language.y:216:      /* The following symbos return type information */      %type <n> string expr01 expr00 comma_expr   %type <n> expr2 expr1 expr3 expr0 expr4 catch lvalue_list   %type <n> lambda for_expr block assoc_pair new_local_name   %type <n> expr_list2 m_expr_list m_expr_list2 statement gauge sscanf   %type <n> for do cond optional_else_part while statements   %type <n> local_name_list class catch_arg   %type <n> unused2 foreach unused switch case return expr_list default - %type <n> continue break block_or_semi + %type <n> continue break block_or_semi typeof   %%      all: program;      program: program def optional_semi_colon    | /* empty */ ;      optional_semi_colon: /* empty */    | ';' { yyerror("Extra ';'. Ignored."); };   
pike.git/src/language.y:913:   expr3: expr4    | expr4 F_INC { $$=mknode(F_POST_INC,$1,0); }    | expr4 F_DEC { $$=mknode(F_POST_DEC,$1,0); }    ;      expr4: string    | F_NUMBER { $$=mkintnode($1); }    | F_FLOAT { $$=mkfloatnode($1); }    | catch    | gauge +  | typeof    | sscanf    | lambda    | class    | F_IDENTIFIER    {    int i;    struct efun *f;    if((i=islocal($1))>=0)    {    $$=mklocalnode(i);
pike.git/src/language.y:1022:    {    $$=mknode(F_NEGATE,    mknode(F_SUBTRACT,    mknode(F_INDEX,mkefuncallnode("rusage",0),    mkintnode(GAUGE_RUSAGE_INDEX)),    mknode(F_ARG_LIST,$3,    mknode(F_INDEX,mkefuncallnode("rusage",0),    mkintnode(GAUGE_RUSAGE_INDEX)))),0);    } ;    + typeof: F_TYPEOF '(' expr0 ')' +  { +  node *tmp; +  tmp=mknode(F_ARG_LIST,$3,0); +  $$=mkstrnode(describe_type($3->type)); +  free_node(tmp); +  } ;    - catch_arg: '(' unused ')' { $$=$2; } + catch_arg: '(' comma_expr ')' { $$=$2; }    | block    ;      catch: F_CATCH catch_arg    {    $$=mknode(F_CATCH,$2,NULL);    } ;      sscanf: F_SSCANF '(' expr0 ',' expr0 lvalue_list ')'    {