X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=lexer.h;h=48ab4b6e17b0a3b7af2aea2d6cbbb66af28ffee7;hb=9908209f5825821eb8c73ff4926bc2b504848792;hp=c8c6bfea0772da0ccf56e7862c803d745ad338ef;hpb=fa5ad1212eb2cac046ff66dffb472cec9b024b9f;p=xonotic%2Fgmqcc.git diff --git a/lexer.h b/lexer.h index c8c6bfe..48ab4b6 100644 --- a/lexer.h +++ b/lexer.h @@ -185,10 +185,10 @@ static const oper_info c_operators[] = { { "++", 1, opid3('+','+','P'), ASSOC_RIGHT, 16, OP_PREFIX, false}, { "--", 1, opid3('-','-','P'), ASSOC_RIGHT, 16, OP_PREFIX, false}, - { "**", 2, opid2('*', '*'), ASSOC_RIGHT, 15, 0, true}, + { "**", 2, opid2('*','*'), ASSOC_RIGHT, 15, 0, true}, - { "!", 1, opid2('!', 'P'), ASSOC_RIGHT, 14, OP_PREFIX, true}, - { "~", 1, opid2('~', 'P'), ASSOC_RIGHT, 14, OP_PREFIX, true}, + { "!", 1, opid2('!','P'), ASSOC_RIGHT, 14, OP_PREFIX, true}, + { "~", 1, opid2('~','P'), ASSOC_RIGHT, 14, OP_PREFIX, true}, { "+", 1, opid2('+','P'), ASSOC_RIGHT, 14, OP_PREFIX, false}, { "-", 1, opid2('-','P'), ASSOC_RIGHT, 14, OP_PREFIX, true}, /* { "&", 1, opid2('&','P'), ASSOC_RIGHT, 14, OP_PREFIX, false}, */ @@ -212,7 +212,7 @@ static const oper_info c_operators[] = { { "==", 2, opid2('=','='), ASSOC_LEFT, 9, 0, true}, { "!=", 2, opid2('!','='), ASSOC_LEFT, 9, 0, true}, - { "&", 2, opid1('&'), ASSOC_LEFT, 8, 0, false}, + { "&", 2, opid1('&'), ASSOC_LEFT, 8, 0, true}, { "^", 2, opid1('^'), ASSOC_LEFT, 7, 0, true}, @@ -235,13 +235,11 @@ static const oper_info c_operators[] = { { "&=", 2, opid2('&','='), ASSOC_RIGHT, 2, 0, false}, { "^=", 2, opid2('^','='), ASSOC_RIGHT, 2, 0, false}, { "|=", 2, opid2('|','='), ASSOC_RIGHT, 2, 0, false}, - { "&~=", 2, opid3('&','~','='), ASSOC_RIGHT, 2, 0, false}, { ":", 0, opid2(':','?'), ASSOC_RIGHT, 1, 0, false}, { ",", 2, opid1(','), ASSOC_LEFT, 0, 0, false} }; -static const size_t c_operator_count = (sizeof(c_operators) / sizeof(c_operators[0])); static const oper_info fte_operators[] = { { "(", 0, opid1('('), ASSOC_LEFT, 99, OP_PREFIX, false}, /* paren expression - non function call */ @@ -252,9 +250,9 @@ static const oper_info fte_operators[] = { { "(", 0, opid1('('), ASSOC_LEFT, 15, 0, false}, /* function call */ { "[", 2, opid1('['), ASSOC_LEFT, 15, 0, false}, /* array subscript */ - { "!", 1, opid2('!', 'P'), ASSOC_RIGHT, 14, OP_PREFIX, false}, + { "!", 1, opid2('!','P'), ASSOC_RIGHT, 14, OP_PREFIX, true}, { "+", 1, opid2('+','P'), ASSOC_RIGHT, 14, OP_PREFIX, false}, - { "-", 1, opid2('-','P'), ASSOC_RIGHT, 14, OP_PREFIX, false}, + { "-", 1, opid2('-','P'), ASSOC_RIGHT, 14, OP_PREFIX, true}, { "++", 1, opid3('+','+','P'), ASSOC_RIGHT, 14, OP_PREFIX, false}, { "--", 1, opid3('-','-','P'), ASSOC_RIGHT, 14, OP_PREFIX, false}, @@ -295,7 +293,6 @@ static const oper_info fte_operators[] = { { ",", 2, opid1(','), ASSOC_LEFT, 2, 0, false}, { ":", 0, opid2(':','?'), ASSOC_RIGHT, 1, 0, false} }; -static const size_t fte_operator_count = (sizeof(fte_operators) / sizeof(fte_operators[0])); static const oper_info qcc_operators[] = { { "(", 0, opid1('('), ASSOC_LEFT, 99, OP_PREFIX, false}, /* paren expression - non function call */ @@ -304,7 +301,7 @@ static const oper_info qcc_operators[] = { { "(", 0, opid1('('), ASSOC_LEFT, 15, 0, false}, /* function call */ { "[", 2, opid1('['), ASSOC_LEFT, 15, 0, false}, /* array subscript */ - { "!", 1, opid2('!', 'P'), ASSOC_RIGHT, 14, OP_PREFIX, true}, + { "!", 1, opid2('!','P'), ASSOC_RIGHT, 14, OP_PREFIX, true}, { "+", 1, opid2('+','P'), ASSOC_RIGHT, 14, OP_PREFIX, false}, { "-", 1, opid2('-','P'), ASSOC_RIGHT, 14, OP_PREFIX, true}, @@ -337,10 +334,7 @@ static const oper_info qcc_operators[] = { { ",", 2, opid1(','), ASSOC_LEFT, 2, 0, false}, }; -static const size_t qcc_operator_count = (sizeof(qcc_operators) / sizeof(qcc_operators[0])); - extern const oper_info *operators; extern size_t operator_count; -/*void lexerror(lex_file*, const char *fmt, ...);*/ #endif