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

   out.c

   out.h

   subfunc.c

   switch.c

   type.c

   type.h

   vars.c

   while.c

   with.c

Ads

Perfect Automation tool
All-In-One: Script editor, Launcher, Scheduler, Keyboard & Mouse Recorder. Try now!

CreateInstall
Freeware and commercial installers.

Cell Phone Batteries
Batteries Plus offers batteries for laptop, camcorder, cell phone, camera.

Gentee needs your help!
How to advertise with us
 
laptop battery

 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: jump 07.02.07 0.0.A.
11 *
12 * Author: Alexander Krivonogov ( algen )
13 *
14 * Summary: Переходы и метки
15 *
16 ******************************************************************************/
17 
18 #include "func.h"
19 
20 /*-----------------------------------------------------------------------------
21 *
22 * ID: j_jump 07.02.06 0.0.A.
23 *
24 * Summary: Добавление перехода в таблицу меток
25 *
26 -----------------------------------------------------------------------------*/
27 uint STDCALL j_jump( uint cmd, uint flag, uint link )
28 {
29    uint      off;        //Смещение на элемент в таблице меток
30    pflabel   curlabel;   //Текущий элемент в таблице меток
31 
32    out_add2uint( cmd, 0 );
33 
34    off = fd.blabels.use;
35    curlabel = (pflabel)buf_appendtype( &fd.blabels, sizeof( flabel ));   
36 
37    curlabel->type = flag;
38    curlabel->offbout = fd.bout->use - sizeof( uint );
39    curlabel->link = link;
40    return off;
41 }
42 
43 /*-----------------------------------------------------------------------------
44 *
45 * ID: j_label 07.02.06 0.0.A.
46 *
47 * Summary: Добавление метки в таблицу меток
48 *
49 -----------------------------------------------------------------------------*/
50 uint STDCALL j_label( uint flag, uint link )
51 {
52    uint      off;        //Смещение на элемент в таблице меток
53    pflabel   curlabel;   //Текущий элемент в таблице меток
54 
55    off = fd.blabels.use;
56    curlabel = (pflabel)buf_appendtype( &fd.blabels, sizeof( flabel ));
57 
58    curlabel->type = flag;
59    curlabel->offbout = fd.bout->use;
60    curlabel->link = link;
61    return off;
62 }
63 
64 /*-----------------------------------------------------------------------------
65 *
66 * ID: j_correct 07.02.06 0.0.A.
67 *
68 * Summary: Корректировка последовательности переходов
69 *
70 -----------------------------------------------------------------------------*/
71 void STDCALL j_correct( uint curoff, uint link )
72 {
73    pflabel   curlabel;   // Текущий элемент в таблице меток
74    while ( curoff != -1 )
75    {
76       curlabel = (pflabel)( fd.blabels.data + curoff );
77       curoff = curlabel->link;
78       curlabel->link = link;
79    }
80 }
Edit