pike.git
/
src
/
lex.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/lex.c:801:
if(save_sp[e].u.string==s2) { free_string(s2); push_int(e); break; } } if(e==argc) { push_string(s2);
-
if(sp[-2].type==T_STRING) f_add();
+
if(sp[-2].type==T_STRING) f_add(
2
);
} if(c=='\n' || c==MY_EOF) { push_string(make_shared_string(" "));
-
if(sp[-2].type==T_STRING) f_add();
+
if(sp[-2].type==T_STRING) f_add(
2
);
break; } t=!!isidchar(c); init_buf(); } my_putchar(c); } UNGETC(c); add_define(s,argc,sp-save_sp-argc,0); while(sp>save_sp) pop_stack();
pike.git/src/lex.c:1501:
case ',': case '~': case '@': case ')': case '[': case ']': case '{': case ';': case '}': return c;
+
case '`':
+
{
+
char *tmp;
+
switch(GETC())
+
{
+
case '+': tmp="`+"; break;
+
case '-': tmp="`-"; break;
+
case '/': tmp="`/"; break;
+
case '%': tmp="`%"; break;
+
case '*': tmp="`*"; break;
+
case '&': tmp="`&"; break;
+
case '|': tmp="`|"; break;
+
case '^': tmp="`^"; break;
+
case '~': tmp="`~"; break;
+
case '(':
+
if(GOBBLE(')')) { tmp="`()"; break; }
+
default:
-
+
yyerror("Illegal ` identifier.");
+
tmp="";
+
break;
+
+
case '<':
+
if(GOBBLE('<')) { tmp="`<<"; break; }
+
if(GOBBLE('=')) { tmp="`<="; break; }
+
tmp="`<";
+
break;
+
+
case '>':
+
if(GOBBLE('>')) { tmp="`>>"; break; }
+
if(GOBBLE('=')) { tmp="`>="; break; }
+
tmp="`>";
+
break;
+
+
case '!':
+
if(GOBBLE('=')) { tmp="`!="; break; }
+
tmp="`!";
+
break;
+
+
case '=':
+
if(GOBBLE('=')) { tmp="`=="; break; }
+
tmp="`=";
+
break;
+
}
+
+
if(literal)
+
{
+
yylval->str=buf;
+
}else{
+
yylval->string=make_shared_string(tmp);
+
}
+
return F_IDENTIFIER;
+
}
+
+
+
default:
if(isidchar(c)) { struct lpc_string *s; UNGETC(c); READBUF(isidchar(C)); if(!literal) { /* identify identifier, if it is not a shared string, * then it is neither a define, reserved word, local variable
pike.git/src/lex.c:1672:
error("Missing ']'\n"); else low_lex(); } } static void calcB() { switch(lookahead) {
-
case '-': low_lex(); calcB();
f
_negate(); break;
-
case F_NOT: low_lex(); calcB();
f
_not(); break;
-
case '~': low_lex(); calcB();
f
_compl(); break;
+
case '-': low_lex(); calcB();
o
_negate(); break;
+
case F_NOT: low_lex(); calcB();
o
_not(); break;
+
case '~': low_lex(); calcB();
o
_compl(); break;
default: calcC(); } } static void calcA() { calcB(); while(1) { switch(lookahead) {
-
case '/': low_lex(); calcB();
f
_divide(); continue;
-
case '*': low_lex(); calcB();
f
_multiply(); continue;
-
case '%': low_lex(); calcB();
f
_mod(); continue;
+
case '/': low_lex(); calcB();
o
_divide(); continue;
+
case '*': low_lex(); calcB();
o
_multiply(); continue;
+
case '%': low_lex(); calcB();
o
_mod(); continue;
} break; } } static void calc9() { calcA(); while(1) { switch(lookahead) {
-
case '+': low_lex(); calcA(); f_add(); continue;
-
case '-': low_lex(); calcA();
f
_subtract(); continue;
+
case '+': low_lex(); calcA(); f_add(
2
); continue;
+
case '-': low_lex(); calcA();
o
_subtract(); continue;
} break; } } static void calc8() { calc9(); while(1) { switch(lookahead) {
-
case F_LSH: low_lex(); calc9();
f
_lsh(); continue;
-
case F_RSH: low_lex(); calc9();
f
_rsh(); continue;
+
case F_LSH: low_lex(); calc9();
o
_lsh(); continue;
+
case F_RSH: low_lex(); calc9();
o
_rsh(); continue;
} break; } } static void calc7b() { calc8(); while(1) { switch(lookahead) {
-
case '<': low_lex(); calc8(); f_lt(); continue;
-
case '>': low_lex(); calc8(); f_gt(); continue;
-
case F_GE: low_lex(); calc8(); f_ge(); continue;
-
case F_LE: low_lex(); calc8(); f_le(); continue;
+
case '<': low_lex(); calc8(); f_lt(
2
); continue;
+
case '>': low_lex(); calc8(); f_gt(
2
); continue;
+
case F_GE: low_lex(); calc8(); f_ge(
2
); continue;
+
case F_LE: low_lex(); calc8(); f_le(
2
); continue;
} break; } } static void calc7() { calc7b(); while(1) { switch(lookahead) {
-
case F_EQ: low_lex(); calc7b(); f_eq(); continue;
-
case F_NE: low_lex(); calc7b(); f_ne(); continue;
+
case F_EQ: low_lex(); calc7b(); f_eq(
2
); continue;
+
case F_NE: low_lex(); calc7b(); f_ne(
2
); continue;
} break; } } static void calc6() { calc7(); while(lookahead=='&') { low_lex(); calc7();
-
f
_and();
+
o
_and();
} } static void calc5() { calc6(); while(lookahead=='^') { low_lex(); calc6();
-
f
_xor();
+
o
_xor();
} } static void calc4() { calc5(); while(lookahead=='|') { low_lex(); calc5();
-
f
_or();
+
o
_or();
} } static void calc3() { calc4(); while(lookahead==F_LAND) { low_lex();