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.gt

   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.gt
  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 * ID: msglist 26.10.06 0.0.A.
 11 *
 12 * Author: Alexander Krivonogov ( algen )
 13 *
 14 * Summary: The list of the operations 
 15 *
 16 ******************************************************************************/-->
 17 <--Флаги операций-->
 18 <flags>
 19 <nop     comment="Не имеет кода операции"/>
 20 <binary  comment="Бинарная операция"/>
 21 <unary   comment="Унарная операция стоящая перед операндом"/>
 22 <post    comment="Унарная операция стоящая после операнда"/>
 23 <undef   comment="Операция не определена, следующая операция, для данного типа всегда должен стоять unary"/> 
 24 <retuint comment="Операция будет возвращать uint"/>
 25 <addnot  comment="Данная операция разбивается на две - предыдущая операция и логическое НЕТ"/>
 26 <open    comment="Открывающая скобка"/>
 27 <close   comment="Закрывающая скобка"/>
 28 <lvalue  comment="LValue операция"/>
 29 </flags>
 30 
 31 <--Описание списка-->
 32 <desc>
 33 
 34 </desc>
 35 
 36 <--Список операций, не изменять взаимное расположение!
 37 формат списка:
 38    <идентификатор>="<лексема>" prin=<приоритет вх> prout=<приоритет вых> <флаги>
 39 
 40 <идентификатор> - Идентификатор лексемы, соответсвует индексу в таблице
 41 <лексема> - Символьное предсавление системной лексемы
 42 <приоритет вх> - приоритет при первом получении лексемы  
 43 <приоритет вых> - приоритет в стэке операций
 44 <флаги> - комбинация флагов операций 
 45 -->
 46 <--space      =""                     nop            /-->
 47 <--file       =""                     nop            /-->
 48 <tbl>
 49 <as         =""    prin=14 prout=3  binary lvalue nop /> 
 50 <func       =""    prin=18 prout=18 unary  nop     />
 51 <line       =""    prin=0  prout=0  nop />
 52 <strappend  ="+="  prin=18 prout=18 binary lvalue />
 53 <strtext    ="@"  prin=18 prout=18 unary />
 54 <plus       ="+"   prin=16 prout=15 undef unary nop />
 55 <add        ="+"   prin=12 prout=12 binary          />
 56 <minus      ="-"   prin=16 prout=15 undef unary     />
 57 <sub        ="-"   prin=12 prout=12 binary          />
 58 <len        ="*"   prin=16 prout=15 undef unary     />
 59 <mul        ="*"   prin=13 prout=13 binary          />
 60 <div        ="/"   prin=13 prout=13 binary          />
 61 <mod        ="%"   prin=13 prout=13 binary          />
 62 <binnot     ="~"   prin=16 prout=15 undef unary     />
 63 <late       ="~"   prin=17 prout=17 binary nop      />
 64 <addr       ="&"   prin=16 prout=15 undef unary nop lvalue retuint />
 65 <binand     ="&"   prin=8  prout=8  binary               />
 66 <binxor     ="^"   prin=7  prout=7  binary               />
 67 <binor      ="|"   prin=6  prout=6  binary               /> 
 68 <lognot     ="!"   prin=16 prout=15 unary                />
 69 <logand     ="&&"  prin=5  prout=5  binary nop retuint   />
 70 <logor      ="||"  prin=4  prout=4  binary nop retuint   />
 71 <left       ="<<"  prin=11 prout=11 binary               />
 72 <right      =">>"  prin=11 prout=11 binary               />
 73 
 74 <incleft    ="++"  prin=16 prout=15 undef unary lvalue   />
 75 <incright   ="_++" prin=16 prout=15 post lvalue          />
 76 <decleft    ="--"  prin=16 prout=15 undef unary lvalue   />
 77 <decright   ="_--" prin=16 prout=15 post lvalue          />
 78 
 79 <set        ="="   prin=14 prout=3  binary lvalue        />
 80 <addset     ="+="  prin=14 prout=3  binary lvalue        />
 81 <subset     ="-="  prin=14 prout=3  binary lvalue        />
 82 <mulset     ="*="  prin=14 prout=3  binary lvalue        />
 83 <divset     ="/="  prin=14 prout=3  binary lvalue        />
 84 <modset     ="%="  prin=14 prout=3  binary lvalue        />
 85 <andset     ="&="  prin=14 prout=3  binary lvalue        />
 86 <orset      ="|="  prin=14 prout=3  binary lvalue        />
 87 <xorset     ="^="  prin=14 prout=3  binary lvalue        />
 88 <leftset    ="<<=" prin=14 prout=3  binary lvalue        />
 89 <rightset   =">>=" prin=14 prout=3  binary lvalue        />
 90 
 91 <comma      =","   prin=2  prout=2  binary nop           />
 92 <with       ="."   prin=16 prout=15 undef unary          />
 93 <point      ="."   prin=17 prout=17 binary               />
 94 <ptr        ="->"  prin=17 prout=17 binary nop           />
 95 <quest      ="?"   prin=18 prout=18 unary nop            />
 96 <strout     ="@"   prin=16 prout=15 undef unary nop      />
 97 <stradd     ="@"   prin=12 prout=12 binary               />
 98 
 99 <lbrack     ="("   prin=19 prout=1  open nop             />
100 <rbrack     =")"   prin=1  prout=20 close nop            />
101 <lsqbrack   ="["   prin=18 prout=1  open nop             />
102 <rsqbrack   ="]"   prin=1  prout=20 close nop            />
103 <lcrbrack   ="{"   prin=19 prout=1  open nop             />
104 <rcrbrack   ="}"   prin=1  prout=20 close nop            />
105 <collect    ="%{"  prin=19 prout=1  open nop             />
106 
107 <eq         ="=="  prin=9  prout=9  binary               />
108 <noteq      ="!="  prin=9  prout=9  binary addnot        />
109 <greater    =">"   prin=10 prout=10 binary               />
110 <lesseq     ="<="  prin=10 prout=10 binary addnot        />
111 <less       ="<"   prin=10 prout=10 binary               />
112 <greateq    =">="  prin=10 prout=10 binary addnot        />
113 
114 <igneq      ="%==" prin=9  prout=9  binary               />
115 <ignnoteq   ="%!=" prin=9  prout=9  binary addnot        />
116 <igngreater ="%>"  prin=10 prout=10 binary               />
117 <ignlesseq  ="%<=" prin=10 prout=10 binary addnot        />
118 <ignless    ="%<"  prin=10 prout=10 binary               />
119 <igngreateq ="%>=" prin=10 prout=10 binary addnot        />
120 
121 </tbl>   
122 
123    
124    
125    
126    	      
127 
Редактировать