EnglishРусский  

   ..

   lex.c

   lex.h

   lextbl.c

   lextbl.h

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\lex\lextbl.h
 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: lextbl 18.10.06 0.0.A.
11 *
12 * Author: Alexey Krivonogov ( gentee )
13 *
14 * Summary: Развертывание таблицы переходов из краткой формы записи
15 *
16 ******************************************************************************/
17 
18 #ifndef _LEXTBL_
19 #define _LEXTBL_
20 
21    #ifdef __cplusplus               
22       extern "C" {                 
23    #endif // __cplusplus      
24 
25 #include "lex.h"
26 
27 /*
28    Описание краткой формы записи
29    0 uint - количество состояний
30    Каждая строка начинается с количества описаний.
31    0 uint количество описаний помимо default. 
32 
33    1 uint default value
34    
35    По умолчанию 0 является признаком остановки LEX_STOP
36 
37    Значение элементов описывается следующим образом. Оно состоит из пар uint 
38    1 uint - указываем диапазон или отдельные символы
39          1 byte - номер начального 
40          2 byte - номер конечного
41          3 byte - the first additional character
42          4 byte - the second additional character
43    2 uint - значение таблицы переходов
44 
45    Предопределенные диапазоны
46    0x3000 - Цифры и 0x4100
47    0x4100 - '_', 'A'-'Z', 'a'-'z' и больше или равно 128
48    0x5800 - Цифры и 'A'-'F' и 'a'-'f'
49 
50    0 byte - количество блоков ключевых слов
51    0 byte - флаги 
52             0x0001 ignore case.
53    каждый блок состоит из 
54      1 uint - начальное значение первого ключевого слова
55      Строки с ключевыми словами
56      Заканчивается двойным нулем
57 */
58 
59 //--------------------------------------------------------------------------
60 // output - результирующая таблица переходов
61 uint  STDCALL lex_tbl( plex pl, puint input );
62 
63 //--------------------------------------------------------------------------
64 
65    #ifdef __cplusplus              
66       }                            
67    #endif // __cplusplus
68 
69 #endif // _LEXTBL_
70 
71