EnglishРусский  

   ..

   fc.gt

   gasm.gt

   genlex.g

   gentee.gt

   gt.gt

   gtdo.gt

   lextbl.g

The project is closed! You can look at a new scripting language. It is available on GitHub.
Also, try our open source cross-platform automation software.

Ads

Installer and installation software
Commercial and Freeware installers.

source\src\lextbl\gasm.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: gasm 18.10.06 0.0.A.
 11 *
 12 * Author: Alexey Krivonogov ( gentee )
 13 *
 14 * Contributors: Sergey Kurganov ( pretorian )
 15 *
 16 * Summary: ASM lexical table
 17 *
 18 ******************************************************************************/
 19 
 20 <gasm prefix = "ASM_" desc = "Assembler sources" gout =
 21      "..\..\example\asm\lexasm.g"
 22      binout2 = "..\..\example\asm\lexasm.lex" >
 23    <MAIN cmd = SKIP >
 24       <_ hexch = '0A' cmd = LINE pos itcmd />
 25       <_ ch = ',' cmd = SYSCHAR pos itcmd value />
 26       <_ ch = '[' cmd = SYSCHAR pos itcmd value />
 27       <_ ch = ']' cmd = SYSCHAR pos itcmd value />
 28       <_ ch = '+' cmd = SYSCHAR pos itcmd value />
 29       <_ ch = '-' cmd = SYSCHAR pos itcmd value />
 30       <_ ch = '/' state = ISCOMMENT pos/>
 31       <_ ch = '0' state = ISNUMBER pos cmd = NUMBER itcmd />
 32       <_ range = '19' state = DECIMAL pos cmd = NUMBER itcmd />
 33       <_ name state = NAME pos itstate keyword/>
 34    </>   
 35    <ISCOMMENT state = MAIN stay >
 36       <_ ch = '*' state = COMMENT />
 37       <_ ch = '/' state = LINECOMMENT />
 38    </>
 39    <COMMENT cmd = SKIP comment = "Comment /* ... */">
 40       <_ multi = '*/' cmd = SKIP state = MAIN />
 41    </>
 42    <LINECOMMENT cmd = SKIP comment = "Comment //... ">
 43       <_ hexch = '0D0A' state = MAIN stay />
 44    </>
 45    <NAME state = MAIN stay comment = "Name identifier">
 46       <_ numname cmd = OK />
 47       <_ ch = ':' cmd = OK state = MAIN />
 48    </>
 49    <ISNUMBER state = MAIN stay >
 50       <_ range = '09' state = DECIMAL cmd = OK />
 51       <_ ch = 'xX' state = HEX cmd = OK />
 52       <_ ch = '&' state = BIN cmd = OK />
 53    </>
 54    <DECIMAL state = MAIN stay >
 55       <_ range = '09' cmd = OK />
 56    </>
 57    <HEX state = MAIN stay >
 58       <_ numhex cmd = OK />
 59    </>
 60    <BIN state = MAIN stay >
 61       <_ ch = '01' cmd = OK />
 62    </>
 63    <commands skip>
 64       <LINE comment = "New line 0x0D0A or 0x0A" />
 65       <SYSCHAR comment = "System character ', [ ] + - '" />
 66       <NUMBER comment = "Number decimal, hexadecimal or binary" />
 67    </commands>
 68    <keywords skip ignore>
 69       <_= AH id = 0x00/>
 70       <_= AL id = 0x01/>
 71       <_= BH id = 0x02/>
 72       <_= BL id = 0x03/>
 73       <_= CH id = 0x04/>
 74       <_= CL id = 0x05/>
 75       <_= DH id = 0x06/>
 76       <_= DL id = 0x07/>
 77 
 78       <_= AX id = 0x08/>
 79       <_= BX id = 0x09/>
 80       <_= CX id = 0x0A/>
 81       <_= DX id = 0x0B/>
 82 
 83       <_= EAX id = 0x10/>
 84       <_= ECX id = 0x11/>
 85       <_= EDX id = 0x12/>
 86       <_= EBX id = 0x13/>
 87       <_= ESP id = 0x14/>
 88       <_= EBP id = 0x15/>
 89       <_= ESI id = 0x16/>
 90       <_= EDI id = 0x17/>
 91 
 92       <_= CR0 id = 0x20/>
 93       <_= CR1 id = 0x21/>
 94       <_= CR2 id = 0x22/>
 95       <_= CR3 id = 0x23/>
 96       <_= DR0 id = 0x24/>
 97       <_= DR1 id = 0x25/>
 98       <_= DR2 id = 0x26/>
 99       <_= DR3 id = 0x27/>
100       <_= DR4 id = 0x28/>
101       <_= DR5 id = 0x29/>
102       <_= DR6 id = 0x2A/>
103       <_= DR7 id = 0x2B/>
104 
105       <_= JA id = 0x40/>
106       <_= JAE id = 0x41/>
107       <_= JB id = 0x42/>
108       <_= JBE id = 0x43/>
109       <_= JC id = 0x44/>
110       <_= JCXZ id = 0x45/>
111       <_= JE id = 0x46/>
112       <_= JECXZ id = 0x47/>
113       <_= JG id = 0x48/>
114       <_= JGE id = 0x49/>
115       <_= JL id = 0x4A/>
116       <_= JLE id = 0x4B/>
117       <_= JNA id = 0x4C/>
118       <_= JNAE id = 0x4D/>
119       <_= JNB id = 0x4E/>
120       <_= JNBE id = 0x4F/>
121       <_= JNC id = 0x50/>
122       <_= JNE id = 0x51/>
123       <_= JNG id = 0x52/>
124       <_= JNGE id = 0x53/>
125       <_= JNL id = 0x54/>
126       <_= JNLE id = 0x55/>
127       <_= JNO id = 0x56/>
128       <_= JNP id = 0x57/>
129       <_= JNS id = 0x58/>
130       <_= JNZ id = 0x59/>
131       <_= JO id = 0x5A/>
132       <_= JP id = 0x5B/>
133       <_= JS id = 0x5C/>
134       <_= JZ id = 0x5D/>
135       <_= LOOP id = 0x5E/>
136       <_= LOOPE id = 0x5F/>
137       <_= LOOPNE id = 0x60/>
138       <_= LOOPNZ id = 0x61/>
139       <_= REP id = 0x62/>
140       <_= REPE id = 0x63/>
141       <_= REPZ id = 0x64/>
142       <_= REPNE id = 0x65/>
143       <_= REPNZ id = 0x66/>
144       <_= CALL id = 0x67/>
145 
146       <_= CMP id = 0x80/>
147       <_= MPS id = 0x81/>
148       <_= CMPSB id = 0x82/>
149       <_= CMPSW id = 0x83/>
150       <_= CMPSD id = 0x84/>
151       <_= TEST id = 0x85/>
152       <_= ADC id = 0x86/>
153       <_= ADD id = 0x87/>
154       <_= DEC id = 0x88/>
155       <_= DIV id = 0x89/>
156       <_= IDIV id = 0x8A/>
157       <_= IMUL id = 0x8B/>
158       <_= INC id = 0x8C/>
159       <_= MUL id = 0x8D/>
160       <_= RCL id = 0x8E/>
161       <_= ROL id = 0x8F/>
162       <_= RCR id = 0x90/>
163       <_= ROR id = 0x91/>
164       <_= SAL id = 0x92/>
165       <_= SHL id = 0x93/>
166       <_= SAR id = 0x94/>
167       <_= SHR id = 0x95/>
168       <_= SUB id = 0x96/>
169       <_= AND id = 0x97/>
170       <_= OR id = 0x98/>
171       <_= XOR id = 0x99/>
172       <_= NOT id = 0x9A/>
173       <_= NEG id = 0x9B/>
174       <_= IN id = 0x9C/>
175       <_= INS id = 0x9D/>
176       <_= INSB id = 0x9E/>
177       <_= INSW id = 0x9F/>
178       <_= INSD id = 0xA0/>
179       <_= LEA id = 0xA1/>
180       <_= LODS id = 0xA2/>
181       <_= LODSB id = 0xA3/>
182       <_= LODSW id = 0xA4/>
183       <_= LODSD id = 0xA5/>
184       <_= MOV id = 0xA6/>
185       <_= MOVS id = 0xA7/>
186       <_= MOVSB id = 0xA8/>
187       <_= MOVSW id = 0xA9/>
188       <_= MOVSD id = 0xAA/>
189       <_= MOVSX id = 0xAB/>
190       <_= MOVZX id = 0xAC/>
191       <_= POP id = 0xAD/>
192       <_= POPF id = 0xAE/>
193       <_= POPFD id = 0xAF/>
194       <_= POPFW id = 0xB0/>
195       <_= "PUSHA PUSHAD" id = 0xB1/>
196       <_= "POPA POPAD" id = 0xB2/>
197       <_= PUSH id = 0xB3/>
198       <_= PUSHF id = 0xB4/>
199       <_= PUSHFD id = 0xB5/>
200       <_= PUSHFW id = 0xB6/>
201       <_= SCAS id = 0xB7/>
202       <_= SCASB id = 0xB8/>
203       <_= SCASW id = 0xB9/>
204       <_= SCASD id = 0xBA/>
205       <_= STOS id = 0xBB/>
206       <_= STOSB id = 0xBC/>
207       <_= STOSW id = 0xBD/>
208       <_= STOSD id = 0xBE/>
209       <_= XCHG id = 0xBF/>
210       <_= NOP id = 0xC0/>
211       <_= PUSHAW id = 0xC1/>
212       <_= POPAW id = 0xC2/>
213       <_= SAHF id = 0xC3/>
214       <_= LAHF id = 0xC4/>
215       <_= CLC id = 0xC5/>
216       <_= STC id = 0xC6/>
217       <_= CLI id = 0xC7/>
218       <_= STI id = 0xC8/>
219       <_= CLD id = 0xC9/>
220       <_= STD id = 0xCA/>
221       <_= RET id = 0xCB/>
222  </keywords>
223 </gasm