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: gtdo 18.10.06 0.0.A.
11 *
12 * Author: Alexey Krivonogov ( gentee )
13 *
14 * Summary: This file contains a description of the lexical table for
15 processing GT language data.
16 *
17 ******************************************************************************/
18
19 <gtdo prefix = "GTDO_" desc = "Processing GT data" gout = "..\..\lib\gt2\lexgtdo.g"
20 xbinout = "..\..\lib\gt\lexgtdo.lex">
21 <MAIN state = TEXT itstate pos>
22 <_ ch = '&' state = AMP try pos trycmd = AMPTRY />
23 <_ ch = '#' state = SIGN itstate pos />
24 </>
25 <TEXT cmd = OK comment = "Simple text" >
26 <_ ch = '#&' state = MAIN stay />
27 </>
28 <SIGN state = MAIN stay comment = "# character">
29 <_ ch = '/' numname state = NAME pos itstate />
30 <_ ch = '.' cmd = DOT itcmd pos />
31 </>
32 <NAME state = MAIN stay comment = "Macro name after #">
33 <_ ch = '=' cmd = PARCALL itcmd state = MAIN />
34 <_ ch = '/' numname cmd = OK />
35 <_ ch = '(' state = LP itstate pos />
36 <_ ch = '[' state = LSP itstate pos />
37 <_ ch = ':' state = COLON itstate pos />
38 <_ ch = '.' state = SIGN stay />
39 </>
40 <AMP ret >
41 <_ ch = 'Xx' state = ISHEX />
42 <_ ch = '#' state = ISPAR />
43 <_ hexmulti = '5C0D0A' cmd = SKIP state = MAIN />
44 <_ hexmulti = '5C0A' cmd = SKIP state = MAIN />
45 </>
46 <ISHEX ret >
47 <_ numhex state = HEXOK />
48 </>
49 <HEXOK ret >
50 <_ ch = ';' cmd = HEX itcmd state = MAIN />
51 <_ numhex cmd = SKIP />
52 </>
53 <ISPAR ret >
54 <_ range = '09' state = PAROK />
55 </>
56 <PAROK ret >
57 <_ ch = ';' cmd = PAR itcmd state = MAIN />
58 <_ range = '09' cmd = SKIP />
59 </>
60 <LP state = PARTEXT itstate pos comment = "Left parenthesis after macroname">
61 <_ lespace state = SPACE itstate pos />
62 <_ ch = ',' cmd = COMMA itcmd pos />
63 <_ ch = ')' cmd = RP itcmd pos state = MAIN />
64 <_ ch = '"' itstate pos state = DQ />
65 <_ ch = "'" itstate pos state = Q />
66 </>
67 <LSP state = PARSTEXT itstate pos comment = "Left parenthesis after macroname">
68 <_ ch = ']' cmd = RSP itcmd pos state = MAIN />
69 <_ multi = '][' cmd = COMMA itcmd pos state = LSP />
70 </>
71 <COLON cmd = OK comment = "Text until new string">
72 <_ hexmulti = '0D0A' state = MAIN stay />
73 </>
74 <PARTEXT cmd = OK comment = "Simple text inside ()">
75 <_ ch = '),' lespace state = LP stay />
76 </>
77 <PARSTEXT cmd = OK comment = "Simple text inside []">
78 <_ ch = '[]' state = LSP stay pair/>
79 </>
80 <SPACE state = LP stay comment = "Characters less or equal space inside ()">
81 <_ lespace cmd = OK />
82 </>
83 <DQ cmd = OK comment = "Text with double-quotes inside ()">
84 <_ ch = '"' cmd = OK state = LP />
85 </>
86 <Q cmd = OK comment = "Text with '' inside ()">
87 <_ ch = "'" cmd = OK state = LP />
88 </>
89 <AMPTRY itstate state = TEXT >
90 </>
91 <commands skip>
92 <DOT comment = "Dot in the name of the macro" />
93 <HEX comment = "Hexadecimal value of the character &xff;" />
94 <PAR comment = "Number of the parameter " />
95 <COMMA comment = "The comma between parameters" />
96 <RP comment = "The right parenthesis" />
97 <RSP comment = "The right parenthesis" />
98 </commands>
99 </gtdo>
100
Редактировать