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

Реклама

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

 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: with 16.02.07 0.0.A.
11 *
12 * Author: Alexander Krivonogov ( algen )
13 *
14 * Summary: The with statement
15 *
16 ******************************************************************************/
17 
18 #include "func.h"
19 
20 /*-----------------------------------------------------------------------------
21 *
22 * ID: c_with 16.02.07 0.0.A.
23 *
24 * Summary: The with processing
25 *
26 -----------------------------------------------------------------------------*/
27 plexem STDCALL c_with( plexem curlex )
28 {
29    uint       objnum;  //Номер дополнительной переменной хранящей объект
30    uint       objtype; //Тип объекта
31    pfwith     pwith;
32 
33 //Обработка выражения-объекта
34    objnum = var_addtmp( TUint, 0 ); //Создание переменной для хранения адреса объекта
35    out_add2uint( CVarptrload, objnum );//Байт код для сохранения результата выражения
36    curlex = f_expr( curlex, EXPR_NONULL, &objtype, 0 );
37    out_adduint( CSetI );//Байт код загрузки значения
38 
39    pwith = ( pfwith )buf_appendtype( &fd.bwith, sizeof( fwith ));
40    pwith->num = objnum;
41    pwith->type = objtype;
42    curlex = f_body( curlex );
43    fd.bwith.use -= sizeof( fwith );
44 
45    return curlex;
46 }
Редактировать