EnglishРусский  

   ..

   alias.c

   alias.h

   bcodes.c

   bcodes.h

   body.c

   compile.c

   compile.h

   define.c

   define.h

   desc.c

   expr.c

   extern.c

   for.c

   foreach.c

   func.c

   func.h

   global.c

   global.h

   goto.c

   if.c

   ifdef.c

   ifdef.h

   import.c

   import.h

   include.c

   include.h

   jump.c

   lexem.c

   lexem.h

   macro.c

   macro.h

   operlist.c

   operlist.txt

   out.c

   out.h

   subfunc.c

   switch.c

   type.c

   type.h

   vars.c

   while.c

   with.c

Реклама

Инсталлятор CreateInstall
Бесплатные и коммерческие инсталляторы

source\src\compiler\operlist.c
  1 /******************************************************************************
  2 *
  3 * Copyright (C) 2006, The Gentee Group. All rights reserved.
  4 * This file is part of the Gentee open source project <http://www.gentee.com>.
  5 *
  6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT").
  7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS
  8 * ACCEPTANCE OF THE AGREEMENT.
  9 *
 10 * operlist_c 31.03.2008 0.0.A.
 11 *
 12 * Author: Generated with 'operlist' program
 13 *
 14 * Summary: 
 15 *
 16 ******************************************************************************/
 17 
 18 
 19 #include "operlist.h"
 20 
 21 //Таблица приоритетов и типов операций
 22 const soper opers[] = {
 23    { 14, 3, OPF_NOP | OPF_BINARY | OPF_LVALUE },// ''  OpAs 
 24    { 18, 18, OPF_NOP | OPF_UNARY },// ''  OpFunc 
 25    { 0, 0, OPF_NOP },// ''  OpLine 
 26    { 18, 18, OPF_BINARY | OPF_LVALUE },// '+='  OpStrappend 
 27    { 18, 18, OPF_UNARY },// '@'  OpStrtext 
 28    { 16, 15, OPF_NOP | OPF_UNARY | OPF_UNDEF },// '+'  OpPlus 
 29    { 12, 12, OPF_BINARY },// '+'  OpAdd 
 30    { 16, 15, OPF_UNARY | OPF_UNDEF },// '-'  OpMinus 
 31    { 12, 12, OPF_BINARY },// '-'  OpSub 
 32    { 16, 15, OPF_UNARY | OPF_UNDEF },// '*'  OpLen 
 33    { 13, 13, OPF_BINARY },// '*'  OpMul 
 34    { 13, 13, OPF_BINARY },// '/'  OpDiv 
 35    { 13, 13, OPF_BINARY },// '%'  OpMod 
 36    { 16, 15, OPF_UNARY | OPF_UNDEF },// '~'  OpBinnot 
 37    { 17, 17, OPF_NOP | OPF_BINARY },// '~'  OpLate 
 38    { 16, 15, OPF_NOP | OPF_UNARY | OPF_UNDEF | OPF_RETUINT | OPF_LVALUE },// '&'  OpAddr 
 39    { 8, 8, OPF_BINARY },// '&'  OpBinand 
 40    { 7, 7, OPF_BINARY },// '^'  OpBinxor 
 41    { 6, 6, OPF_BINARY },// '|'  OpBinor 
 42    { 16, 15, OPF_UNARY },// '!'  OpLognot 
 43    { 5, 5, OPF_NOP | OPF_BINARY | OPF_RETUINT },// '&&'  OpLogand 
 44    { 4, 4, OPF_NOP | OPF_BINARY | OPF_RETUINT },// '||'  OpLogor 
 45    { 11, 11, OPF_BINARY },// '<<'  OpLeft 
 46    { 11, 11, OPF_BINARY },// '>>'  OpRight 
 47    { 16, 15, OPF_UNARY | OPF_UNDEF | OPF_LVALUE },// '++'  OpIncleft 
 48    { 16, 15, OPF_POST | OPF_LVALUE },// '_++'  OpIncright 
 49    { 16, 15, OPF_UNARY | OPF_UNDEF | OPF_LVALUE },// '--'  OpDecleft 
 50    { 16, 15, OPF_POST | OPF_LVALUE },// '_--'  OpDecright 
 51    { 14, 3, OPF_BINARY | OPF_LVALUE },// '='  OpSet 
 52    { 14, 3, OPF_BINARY | OPF_LVALUE },// '+='  OpAddset 
 53    { 14, 3, OPF_BINARY | OPF_LVALUE },// '-='  OpSubset 
 54    { 14, 3, OPF_BINARY | OPF_LVALUE },// '*='  OpMulset 
 55    { 14, 3, OPF_BINARY | OPF_LVALUE },// '/='  OpDivset 
 56    { 14, 3, OPF_BINARY | OPF_LVALUE },// '%='  OpModset 
 57    { 14, 3, OPF_BINARY | OPF_LVALUE },// '&='  OpAndset 
 58    { 14, 3, OPF_BINARY | OPF_LVALUE },// '|='  OpOrset 
 59    { 14, 3, OPF_BINARY | OPF_LVALUE },// '^='  OpXorset 
 60    { 14, 3, OPF_BINARY | OPF_LVALUE },// '<<='  OpLeftset 
 61    { 14, 3, OPF_BINARY | OPF_LVALUE },// '>>='  OpRightset 
 62    { 2, 2, OPF_NOP | OPF_BINARY },// ','  OpComma 
 63    { 16, 15, OPF_UNARY | OPF_UNDEF },// '.'  OpWith 
 64    { 17, 17, OPF_BINARY },// '.'  OpPoint 
 65    { 17, 17, OPF_NOP | OPF_BINARY },// '->'  OpPtr 
 66    { 18, 18, OPF_NOP | OPF_UNARY },// '?'  OpQuest 
 67    { 16, 15, OPF_NOP | OPF_UNARY | OPF_UNDEF },// '@'  OpStrout 
 68    { 12, 12, OPF_BINARY },// '@'  OpStradd 
 69    { 19, 1, OPF_NOP | OPF_OPEN },// '('  OpLbrack 
 70    { 1, 20, OPF_NOP | OPF_CLOSE },// ')'  OpRbrack 
 71    { 18, 1, OPF_NOP | OPF_OPEN },// '['  OpLsqbrack 
 72    { 1, 20, OPF_NOP | OPF_CLOSE },// ']'  OpRsqbrack 
 73    { 19, 1, OPF_NOP | OPF_OPEN },// '{'  OpLcrbrack 
 74    { 1, 20, OPF_NOP | OPF_CLOSE },// '}'  OpRcrbrack 
 75    { 19, 1, OPF_NOP | OPF_OPEN },// '%{'  OpCollect 
 76    { 9, 9, OPF_BINARY },// '=='  OpEq 
 77    { 9, 9, OPF_BINARY | OPF_ADDNOT },// '!='  OpNoteq 
 78    { 10, 10, OPF_BINARY },// '>'  OpGreater 
 79    { 10, 10, OPF_BINARY | OPF_ADDNOT },// '<='  OpLesseq 
 80    { 10, 10, OPF_BINARY },// '<'  OpLess 
 81    { 10, 10, OPF_BINARY | OPF_ADDNOT },// '>='  OpGreateq 
 82    { 9, 9, OPF_BINARY },// '%=='  OpIgneq 
 83    { 9, 9, OPF_BINARY | OPF_ADDNOT },// '%!='  OpIgnnoteq 
 84    { 10, 10, OPF_BINARY },// '%>'  OpIgngreater 
 85    { 10, 10, OPF_BINARY | OPF_ADDNOT },// '%<='  OpIgnlesseq 
 86    { 10, 10, OPF_BINARY },// '%<'  OpIgnless 
 87    { 10, 10, OPF_BINARY | OPF_ADDNOT },// '%>='  OpIgngreateq 
 88 
 89 };
 90 
 91 //Список строк операций
 92 const ubyte operlexlist[] = { 0, 0, 0, '+', '=', 0, '@', 0, '+', 0, 0, '-', 
 93 0, 0, '*', 0, 0, '/', 0, '%', 0, '~', 0, 0, '&', 0, 0, '^', 0, '|', 0, '!', 
 94 0, '&', '&', 0, '|', '|', 0, '<', '<', 0, '>', '>', 0, '+', '+', 0, '_', '+', 
 95 '+', 0, '-', '-', 0, '_', '-', '-', 0, '=', 0, '+', '=', 0, '-', '=', 0, '*', 
 96 '=', 0, '/', '=', 0, '%', '=', 0, '&', '=', 0, '|', '=', 0, '^', '=', 0, '<', 
 97 '<', '=', 0, '>', '>', '=', 0, ',', 0, '.', 0, 0, '-', '>', 0, '?', 0, '@', 
 98 0, 0, '(', 0, ')', 0, '[', 0, ']', 0, '{', 0, '}', 0, '%', '{', 0, '=', '=', 
 99 0, '!', '=', 0, '>', 0, '<', '=', 0, '<', 0, '>', '=', 0, '%', '=', '=', 0, 
100 '%', '!', '=', 0, '%', '>', 0, '%', '<', '=', 0, '%', '<', 0, '%', '>', '=', 
101 0, };
102 
103 
104 
Редактировать