summaryrefslogtreecommitdiff
path: root/tests/lexers/ec
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2021-01-18 21:24:00 +0100
committerGeorg Brandl <georg@python.org>2021-01-18 22:08:36 +0100
commit2a3d3a7d5b9c60dedf6638d876161d9563faebcf (patch)
tree809c0b4a686db98f5954afa1944404cd9652c6b2 /tests/lexers/ec
parentf0445be718da83541ea3401aad882f3937147263 (diff)
downloadpygments-git-examplefiles.tar.gz
Move test_examplefiles to new tests/lexers scheme.examplefiles
Diffstat (limited to 'tests/lexers/ec')
-rw-r--r--tests/lexers/ec/example.txt2134
-rw-r--r--tests/lexers/ec/example2.txt7714
2 files changed, 9848 insertions, 0 deletions
diff --git a/tests/lexers/ec/example.txt b/tests/lexers/ec/example.txt
new file mode 100644
index 00000000..ce207e34
--- /dev/null
+++ b/tests/lexers/ec/example.txt
@@ -0,0 +1,2134 @@
+---input---
+/* A Bison parser, made by GNU Bison 2.0. */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ IDENTIFIER = 258,
+ CONSTANT = 259,
+ STRING_LITERAL = 260,
+ SIZEOF = 261,
+ PTR_OP = 262,
+ INC_OP = 263,
+ DEC_OP = 264,
+ LEFT_OP = 265,
+ RIGHT_OP = 266,
+ LE_OP = 267,
+ GE_OP = 268,
+ EQ_OP = 269,
+ NE_OP = 270,
+ AND_OP = 271,
+ OR_OP = 272,
+ MUL_ASSIGN = 273,
+ DIV_ASSIGN = 274,
+ MOD_ASSIGN = 275,
+ ADD_ASSIGN = 276,
+ SUB_ASSIGN = 277,
+ LEFT_ASSIGN = 278,
+ RIGHT_ASSIGN = 279,
+ AND_ASSIGN = 280,
+ XOR_ASSIGN = 281,
+ OR_ASSIGN = 282,
+ TYPE_NAME = 283,
+ TYPEDEF = 284,
+ EXTERN = 285,
+ STATIC = 286,
+ AUTO = 287,
+ REGISTER = 288,
+ CHAR = 289,
+ SHORT = 290,
+ INT = 291,
+ UINT = 292,
+ INT64 = 293,
+ LONG = 294,
+ SIGNED = 295,
+ UNSIGNED = 296,
+ FLOAT = 297,
+ DOUBLE = 298,
+ CONST = 299,
+ VOLATILE = 300,
+ VOID = 301,
+ VALIST = 302,
+ STRUCT = 303,
+ UNION = 304,
+ ENUM = 305,
+ ELLIPSIS = 306,
+ CASE = 307,
+ DEFAULT = 308,
+ IF = 309,
+ SWITCH = 310,
+ WHILE = 311,
+ DO = 312,
+ FOR = 313,
+ GOTO = 314,
+ CONTINUE = 315,
+ BREAK = 316,
+ RETURN = 317,
+ IFX = 318,
+ ELSE = 319,
+ CLASS = 320,
+ THISCLASS = 321,
+ CLASS_NAME = 322,
+ PROPERTY = 323,
+ SETPROP = 324,
+ GETPROP = 325,
+ NEWOP = 326,
+ RENEW = 327,
+ DELETE = 328,
+ EXT_DECL = 329,
+ EXT_STORAGE = 330,
+ IMPORT = 331,
+ DEFINE = 332,
+ VIRTUAL = 333,
+ EXT_ATTRIB = 334,
+ PUBLIC = 335,
+ PRIVATE = 336,
+ TYPED_OBJECT = 337,
+ ANY_OBJECT = 338,
+ _INCREF = 339,
+ EXTENSION = 340,
+ ASM = 341,
+ TYPEOF = 342,
+ WATCH = 343,
+ STOPWATCHING = 344,
+ FIREWATCHERS = 345,
+ WATCHABLE = 346,
+ CLASS_DESIGNER = 347,
+ CLASS_NO_EXPANSION = 348,
+ CLASS_FIXED = 349,
+ ISPROPSET = 350,
+ CLASS_DEFAULT_PROPERTY = 351,
+ PROPERTY_CATEGORY = 352,
+ CLASS_DATA = 353,
+ CLASS_PROPERTY = 354,
+ SUBCLASS = 355,
+ NAMESPACE = 356,
+ NEW0OP = 357,
+ RENEW0 = 358,
+ VAARG = 359,
+ DBTABLE = 360,
+ DBFIELD = 361,
+ DBINDEX = 362,
+ DATABASE_OPEN = 363
+ };
+#endif
+#define IDENTIFIER 258
+#define CONSTANT 259
+#define STRING_LITERAL 260
+#define SIZEOF 261
+#define PTR_OP 262
+#define INC_OP 263
+#define DEC_OP 264
+#define LEFT_OP 265
+#define RIGHT_OP 266
+#define LE_OP 267
+#define GE_OP 268
+#define EQ_OP 269
+#define NE_OP 270
+#define AND_OP 271
+#define OR_OP 272
+#define MUL_ASSIGN 273
+#define DIV_ASSIGN 274
+#define MOD_ASSIGN 275
+#define ADD_ASSIGN 276
+#define SUB_ASSIGN 277
+#define LEFT_ASSIGN 278
+#define RIGHT_ASSIGN 279
+#define AND_ASSIGN 280
+#define XOR_ASSIGN 281
+#define OR_ASSIGN 282
+#define TYPE_NAME 283
+#define TYPEDEF 284
+#define EXTERN 285
+#define STATIC 286
+#define AUTO 287
+#define REGISTER 288
+#define CHAR 289
+#define SHORT 290
+#define INT 291
+#define UINT 292
+#define INT64 293
+#define LONG 294
+#define SIGNED 295
+#define UNSIGNED 296
+#define FLOAT 297
+#define DOUBLE 298
+#define CONST 299
+#define VOLATILE 300
+#define VOID 301
+#define VALIST 302
+#define STRUCT 303
+#define UNION 304
+#define ENUM 305
+#define ELLIPSIS 306
+#define CASE 307
+#define DEFAULT 308
+#define IF 309
+#define SWITCH 310
+#define WHILE 311
+#define DO 312
+#define FOR 313
+#define GOTO 314
+#define CONTINUE 315
+#define BREAK 316
+#define RETURN 317
+#define IFX 318
+#define ELSE 319
+#define CLASS 320
+#define THISCLASS 321
+#define CLASS_NAME 322
+#define PROPERTY 323
+#define SETPROP 324
+#define GETPROP 325
+#define NEWOP 326
+#define RENEW 327
+#define DELETE 328
+#define EXT_DECL 329
+#define EXT_STORAGE 330
+#define IMPORT 331
+#define DEFINE 332
+#define VIRTUAL 333
+#define EXT_ATTRIB 334
+#define PUBLIC 335
+#define PRIVATE 336
+#define TYPED_OBJECT 337
+#define ANY_OBJECT 338
+#define _INCREF 339
+#define EXTENSION 340
+#define ASM 341
+#define TYPEOF 342
+#define WATCH 343
+#define STOPWATCHING 344
+#define FIREWATCHERS 345
+#define WATCHABLE 346
+#define CLASS_DESIGNER 347
+#define CLASS_NO_EXPANSION 348
+#define CLASS_FIXED 349
+#define ISPROPSET 350
+#define CLASS_DEFAULT_PROPERTY 351
+#define PROPERTY_CATEGORY 352
+#define CLASS_DATA 353
+#define CLASS_PROPERTY 354
+#define SUBCLASS 355
+#define NAMESPACE 356
+#define NEW0OP 357
+#define RENEW0 358
+#define VAARG 359
+#define DBTABLE 360
+#define DBFIELD 361
+#define DBINDEX 362
+#define DATABASE_OPEN 363
+
+
+
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#line 42 "grammar.y"
+typedef union YYSTYPE {
+ SpecifierType specifierType;
+ int i;
+ AccessMode declMode;
+ Identifier id;
+ Expression exp;
+ Specifier specifier;
+ OldList * list;
+ Enumerator enumerator;
+ Declarator declarator;
+ Pointer pointer;
+ Initializer initializer;
+ InitDeclarator initDeclarator;
+ TypeName typeName;
+ Declaration declaration;
+ Statement stmt;
+ FunctionDefinition function;
+ External external;
+ Context context;
+ AsmField asmField;
+
+ Instantiation instance;
+ MembersInit membersInit;
+ MemberInit memberInit;
+ ClassFunction classFunction;
+ ClassDefinition _class;
+ ClassDef classDef;
+ PropertyDef prop;
+ char * string;
+ Symbol symbol;
+ PropertyWatch propertyWatch;
+ TemplateParameter templateParameter;
+ TemplateArgument templateArgument;
+ TemplateDatatype templateDatatype;
+
+ DBTableEntry dbtableEntry;
+ DBIndexItem dbindexItem;
+ DBTableDef dbtableDef;
+} YYSTYPE;
+/* Line 1318 of yacc.c. */
+#line 293 "grammar.eh"
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+extern YYSTYPE yylval;
+
+#if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
+typedef struct YYLTYPE
+{
+ int first_line;
+ int first_column;
+ int last_line;
+ int last_column;
+} YYLTYPE;
+# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
+# define YYLTYPE_IS_DECLARED 1
+# define YYLTYPE_IS_TRIVIAL 1
+#endif
+
+extern YYLTYPE yylloc;
+
+
+
+---tokens---
+'/* A Bison parser, made by GNU Bison 2.0. */' Comment.Multiline
+'\n' Text
+
+'\n' Text
+
+'/* Skeleton parser for Yacc-like parsing with Bison,\n Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.\n\n This program is free software; you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation; either version 2, or (at your option)\n any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program; if not, write to the Free Software\n Foundation, Inc., 59 Temple Place - Suite 330,\n Boston, MA 02111-1307, USA. */' Comment.Multiline
+'\n' Text
+
+'\n' Text
+
+'/* As a special exception, when this file is copied by Bison into a\n Bison output file, you may use that output file without restriction.\n This special exception was added by the Free Software Foundation\n in version 1.24 of Bison. */' Comment.Multiline
+'\n' Text
+
+'\n' Text
+
+'/* Tokens. */' Comment.Multiline
+'\n' Text
+
+'#' Comment.Preproc
+'ifndef YYTOKENTYPE' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+' define YYTOKENTYPE' Comment.Preproc
+'\n' Comment.Preproc
+
+' ' Text
+'/* Put the tokens into the symbol table, so that GDB and other debuggers\n know about them. */' Comment.Multiline
+'\n' Text
+
+' ' Text
+'enum' Keyword
+' ' Text
+'yytokentype' Name
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'IDENTIFIER' Name
+' ' Text
+'=' Operator
+' ' Text
+'258' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'CONSTANT' Name
+' ' Text
+'=' Operator
+' ' Text
+'259' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'STRING_LITERAL' Name
+' ' Text
+'=' Operator
+' ' Text
+'260' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'SIZEOF' Name
+' ' Text
+'=' Operator
+' ' Text
+'261' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'PTR_OP' Name
+' ' Text
+'=' Operator
+' ' Text
+'262' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'INC_OP' Name
+' ' Text
+'=' Operator
+' ' Text
+'263' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'DEC_OP' Name
+' ' Text
+'=' Operator
+' ' Text
+'264' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'LEFT_OP' Name
+' ' Text
+'=' Operator
+' ' Text
+'265' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'RIGHT_OP' Name
+' ' Text
+'=' Operator
+' ' Text
+'266' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'LE_OP' Name
+' ' Text
+'=' Operator
+' ' Text
+'267' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'GE_OP' Name
+' ' Text
+'=' Operator
+' ' Text
+'268' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'EQ_OP' Name
+' ' Text
+'=' Operator
+' ' Text
+'269' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'NE_OP' Name
+' ' Text
+'=' Operator
+' ' Text
+'270' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'AND_OP' Name
+' ' Text
+'=' Operator
+' ' Text
+'271' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'OR_OP' Name
+' ' Text
+'=' Operator
+' ' Text
+'272' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'MUL_ASSIGN' Name
+' ' Text
+'=' Operator
+' ' Text
+'273' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'DIV_ASSIGN' Name
+' ' Text
+'=' Operator
+' ' Text
+'274' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'MOD_ASSIGN' Name
+' ' Text
+'=' Operator
+' ' Text
+'275' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'ADD_ASSIGN' Name
+' ' Text
+'=' Operator
+' ' Text
+'276' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'SUB_ASSIGN' Name
+' ' Text
+'=' Operator
+' ' Text
+'277' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'LEFT_ASSIGN' Name
+' ' Text
+'=' Operator
+' ' Text
+'278' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'RIGHT_ASSIGN' Name
+' ' Text
+'=' Operator
+' ' Text
+'279' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'AND_ASSIGN' Name
+' ' Text
+'=' Operator
+' ' Text
+'280' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'XOR_ASSIGN' Name
+' ' Text
+'=' Operator
+' ' Text
+'281' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'OR_ASSIGN' Name
+' ' Text
+'=' Operator
+' ' Text
+'282' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'TYPE_NAME' Name
+' ' Text
+'=' Operator
+' ' Text
+'283' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'TYPEDEF' Name
+' ' Text
+'=' Operator
+' ' Text
+'284' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'EXTERN' Name
+' ' Text
+'=' Operator
+' ' Text
+'285' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'STATIC' Name
+' ' Text
+'=' Operator
+' ' Text
+'286' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'AUTO' Name
+' ' Text
+'=' Operator
+' ' Text
+'287' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'REGISTER' Name
+' ' Text
+'=' Operator
+' ' Text
+'288' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'CHAR' Name
+' ' Text
+'=' Operator
+' ' Text
+'289' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'SHORT' Name
+' ' Text
+'=' Operator
+' ' Text
+'290' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'INT' Name
+' ' Text
+'=' Operator
+' ' Text
+'291' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'UINT' Name
+' ' Text
+'=' Operator
+' ' Text
+'292' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'INT64' Name
+' ' Text
+'=' Operator
+' ' Text
+'293' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'LONG' Name
+' ' Text
+'=' Operator
+' ' Text
+'294' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'SIGNED' Name
+' ' Text
+'=' Operator
+' ' Text
+'295' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'UNSIGNED' Name
+' ' Text
+'=' Operator
+' ' Text
+'296' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'FLOAT' Name
+' ' Text
+'=' Operator
+' ' Text
+'297' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'DOUBLE' Name
+' ' Text
+'=' Operator
+' ' Text
+'298' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'CONST' Name
+' ' Text
+'=' Operator
+' ' Text
+'299' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'VOLATILE' Name
+' ' Text
+'=' Operator
+' ' Text
+'300' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'VOID' Name
+' ' Text
+'=' Operator
+' ' Text
+'301' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'VALIST' Name
+' ' Text
+'=' Operator
+' ' Text
+'302' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'STRUCT' Name
+' ' Text
+'=' Operator
+' ' Text
+'303' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'UNION' Name
+' ' Text
+'=' Operator
+' ' Text
+'304' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'ENUM' Name
+' ' Text
+'=' Operator
+' ' Text
+'305' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'ELLIPSIS' Name
+' ' Text
+'=' Operator
+' ' Text
+'306' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'CASE' Name
+' ' Text
+'=' Operator
+' ' Text
+'307' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'DEFAULT' Name
+' ' Text
+'=' Operator
+' ' Text
+'308' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'IF' Name
+' ' Text
+'=' Operator
+' ' Text
+'309' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'SWITCH' Name
+' ' Text
+'=' Operator
+' ' Text
+'310' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'WHILE' Name
+' ' Text
+'=' Operator
+' ' Text
+'311' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'DO' Name
+' ' Text
+'=' Operator
+' ' Text
+'312' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'FOR' Name
+' ' Text
+'=' Operator
+' ' Text
+'313' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'GOTO' Name
+' ' Text
+'=' Operator
+' ' Text
+'314' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'CONTINUE' Name
+' ' Text
+'=' Operator
+' ' Text
+'315' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'BREAK' Name
+' ' Text
+'=' Operator
+' ' Text
+'316' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'RETURN' Name
+' ' Text
+'=' Operator
+' ' Text
+'317' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'IFX' Name
+' ' Text
+'=' Operator
+' ' Text
+'318' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'ELSE' Name
+' ' Text
+'=' Operator
+' ' Text
+'319' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'CLASS' Name
+' ' Text
+'=' Operator
+' ' Text
+'320' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'THISCLASS' Name
+' ' Text
+'=' Operator
+' ' Text
+'321' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'CLASS_NAME' Name
+' ' Text
+'=' Operator
+' ' Text
+'322' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'PROPERTY' Name
+' ' Text
+'=' Operator
+' ' Text
+'323' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'SETPROP' Name
+' ' Text
+'=' Operator
+' ' Text
+'324' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'GETPROP' Name
+' ' Text
+'=' Operator
+' ' Text
+'325' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'NEWOP' Name
+' ' Text
+'=' Operator
+' ' Text
+'326' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'RENEW' Name
+' ' Text
+'=' Operator
+' ' Text
+'327' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'DELETE' Name
+' ' Text
+'=' Operator
+' ' Text
+'328' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'EXT_DECL' Name
+' ' Text
+'=' Operator
+' ' Text
+'329' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'EXT_STORAGE' Name
+' ' Text
+'=' Operator
+' ' Text
+'330' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'IMPORT' Name
+' ' Text
+'=' Operator
+' ' Text
+'331' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'DEFINE' Name
+' ' Text
+'=' Operator
+' ' Text
+'332' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'VIRTUAL' Name
+' ' Text
+'=' Operator
+' ' Text
+'333' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'EXT_ATTRIB' Name
+' ' Text
+'=' Operator
+' ' Text
+'334' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'PUBLIC' Name
+' ' Text
+'=' Operator
+' ' Text
+'335' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'PRIVATE' Name
+' ' Text
+'=' Operator
+' ' Text
+'336' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'TYPED_OBJECT' Name
+' ' Text
+'=' Operator
+' ' Text
+'337' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'ANY_OBJECT' Name
+' ' Text
+'=' Operator
+' ' Text
+'338' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'_INCREF' Name
+' ' Text
+'=' Operator
+' ' Text
+'339' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'EXTENSION' Name
+' ' Text
+'=' Operator
+' ' Text
+'340' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'ASM' Name
+' ' Text
+'=' Operator
+' ' Text
+'341' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'TYPEOF' Name
+' ' Text
+'=' Operator
+' ' Text
+'342' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'WATCH' Name
+' ' Text
+'=' Operator
+' ' Text
+'343' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'STOPWATCHING' Name
+' ' Text
+'=' Operator
+' ' Text
+'344' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'FIREWATCHERS' Name
+' ' Text
+'=' Operator
+' ' Text
+'345' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'WATCHABLE' Name
+' ' Text
+'=' Operator
+' ' Text
+'346' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'CLASS_DESIGNER' Name
+' ' Text
+'=' Operator
+' ' Text
+'347' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'CLASS_NO_EXPANSION' Name
+' ' Text
+'=' Operator
+' ' Text
+'348' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'CLASS_FIXED' Name
+' ' Text
+'=' Operator
+' ' Text
+'349' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'ISPROPSET' Name
+' ' Text
+'=' Operator
+' ' Text
+'350' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'CLASS_DEFAULT_PROPERTY' Name
+' ' Text
+'=' Operator
+' ' Text
+'351' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'PROPERTY_CATEGORY' Name
+' ' Text
+'=' Operator
+' ' Text
+'352' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'CLASS_DATA' Name
+' ' Text
+'=' Operator
+' ' Text
+'353' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'CLASS_PROPERTY' Name
+' ' Text
+'=' Operator
+' ' Text
+'354' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'SUBCLASS' Name
+' ' Text
+'=' Operator
+' ' Text
+'355' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'NAMESPACE' Name
+' ' Text
+'=' Operator
+' ' Text
+'356' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'NEW0OP' Name
+' ' Text
+'=' Operator
+' ' Text
+'357' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'RENEW0' Name
+' ' Text
+'=' Operator
+' ' Text
+'358' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'VAARG' Name
+' ' Text
+'=' Operator
+' ' Text
+'359' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'DBTABLE' Name
+' ' Text
+'=' Operator
+' ' Text
+'360' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'DBFIELD' Name
+' ' Text
+'=' Operator
+' ' Text
+'361' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'DBINDEX' Name
+' ' Text
+'=' Operator
+' ' Text
+'362' Literal.Number.Integer
+',' Punctuation
+'\n' Text
+
+' ' Text
+'DATABASE_OPEN' Name
+' ' Text
+'=' Operator
+' ' Text
+'363' Literal.Number.Integer
+'\n' Text
+
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+'#' Comment.Preproc
+'endif' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define IDENTIFIER 258' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define CONSTANT 259' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define STRING_LITERAL 260' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define SIZEOF 261' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define PTR_OP 262' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define INC_OP 263' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define DEC_OP 264' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define LEFT_OP 265' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define RIGHT_OP 266' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define LE_OP 267' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define GE_OP 268' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define EQ_OP 269' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define NE_OP 270' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define AND_OP 271' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define OR_OP 272' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define MUL_ASSIGN 273' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define DIV_ASSIGN 274' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define MOD_ASSIGN 275' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define ADD_ASSIGN 276' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define SUB_ASSIGN 277' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define LEFT_ASSIGN 278' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define RIGHT_ASSIGN 279' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define AND_ASSIGN 280' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define XOR_ASSIGN 281' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define OR_ASSIGN 282' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define TYPE_NAME 283' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define TYPEDEF 284' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define EXTERN 285' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define STATIC 286' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define AUTO 287' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define REGISTER 288' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define CHAR 289' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define SHORT 290' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define INT 291' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define UINT 292' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define INT64 293' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define LONG 294' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define SIGNED 295' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define UNSIGNED 296' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define FLOAT 297' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define DOUBLE 298' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define CONST 299' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define VOLATILE 300' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define VOID 301' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define VALIST 302' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define STRUCT 303' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define UNION 304' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define ENUM 305' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define ELLIPSIS 306' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define CASE 307' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define DEFAULT 308' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define IF 309' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define SWITCH 310' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define WHILE 311' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define DO 312' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define FOR 313' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define GOTO 314' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define CONTINUE 315' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define BREAK 316' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define RETURN 317' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define IFX 318' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define ELSE 319' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define CLASS 320' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define THISCLASS 321' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define CLASS_NAME 322' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define PROPERTY 323' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define SETPROP 324' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define GETPROP 325' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define NEWOP 326' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define RENEW 327' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define DELETE 328' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define EXT_DECL 329' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define EXT_STORAGE 330' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define IMPORT 331' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define DEFINE 332' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define VIRTUAL 333' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define EXT_ATTRIB 334' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define PUBLIC 335' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define PRIVATE 336' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define TYPED_OBJECT 337' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define ANY_OBJECT 338' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define _INCREF 339' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define EXTENSION 340' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define ASM 341' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define TYPEOF 342' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define WATCH 343' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define STOPWATCHING 344' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define FIREWATCHERS 345' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define WATCHABLE 346' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define CLASS_DESIGNER 347' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define CLASS_NO_EXPANSION 348' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define CLASS_FIXED 349' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define ISPROPSET 350' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define CLASS_DEFAULT_PROPERTY 351' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define PROPERTY_CATEGORY 352' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define CLASS_DATA 353' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define CLASS_PROPERTY 354' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define SUBCLASS 355' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define NAMESPACE 356' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define NEW0OP 357' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define RENEW0 358' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define VAARG 359' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define DBTABLE 360' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define DBFIELD 361' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define DBINDEX 362' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'define DATABASE_OPEN 363' Comment.Preproc
+'\n' Comment.Preproc
+
+'\n' Text
+
+'\n' Text
+
+'\n' Text
+
+'\n' Text
+
+'#' Comment.Preproc
+'if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'line 42 "grammar.y"' Comment.Preproc
+'\n' Comment.Preproc
+
+'typedef' Keyword
+' ' Text
+'union' Keyword
+' ' Text
+'YYSTYPE' Name.Class
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'SpecifierType' Name
+' ' Text
+'specifierType' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'i' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'AccessMode' Name
+' ' Text
+'declMode' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Identifier' Name
+' ' Text
+'id' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Expression' Name
+' ' Text
+'exp' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Specifier' Name
+' ' Text
+'specifier' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'OldList' Name
+' ' Text
+'*' Operator
+' ' Text
+'list' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Enumerator' Name
+' ' Text
+'enumerator' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Declarator' Name
+' ' Text
+'declarator' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Pointer' Name
+' ' Text
+'pointer' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Initializer' Name
+' ' Text
+'initializer' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'InitDeclarator' Name
+' ' Text
+'initDeclarator' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'TypeName' Name
+' ' Text
+'typeName' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Declaration' Name
+' ' Text
+'declaration' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Statement' Name
+' ' Text
+'stmt' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'FunctionDefinition' Name
+' ' Text
+'function' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'External' Name
+' ' Text
+'external' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Context' Name
+' ' Text
+'context' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'AsmField' Name
+' ' Text
+'asmField' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'Instantiation' Name
+' ' Text
+'instance' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'MembersInit' Name
+' ' Text
+'membersInit' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'MemberInit' Name
+' ' Text
+'memberInit' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'ClassFunction' Name
+' ' Text
+'classFunction' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'ClassDefinition' Name
+' ' Text
+'_class' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'ClassDef' Name
+' ' Text
+'classDef' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'PropertyDef' Name
+' ' Text
+'prop' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'string' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Symbol' Name
+' ' Text
+'symbol' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'PropertyWatch' Name
+' ' Text
+'propertyWatch' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'TemplateParameter' Name
+' ' Text
+'templateParameter' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'TemplateArgument' Name
+' ' Text
+'templateArgument' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'TemplateDatatype' Name
+' ' Text
+'templateDatatype' Name
+';' Punctuation
+'\n' Text
+
+' \n ' Text
+'DBTableEntry' Name
+' ' Text
+'dbtableEntry' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'DBIndexItem' Name
+' ' Text
+'dbindexItem' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'DBTableDef' Name
+' ' Text
+'dbtableDef' Name
+';' Punctuation
+'\n' Text
+
+'}' Punctuation
+' ' Text
+'YYSTYPE' Name
+';' Punctuation
+'\n' Text
+
+'/* Line 1318 of yacc.c. */' Comment.Multiline
+'\n' Text
+
+'#' Comment.Preproc
+'line 293 "grammar.eh"' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+' define yystype YYSTYPE ' Comment.Preproc
+'/* obsolescent; will be withdrawn */' Comment.Multiline
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+' define YYSTYPE_IS_DECLARED 1' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+' define YYSTYPE_IS_TRIVIAL 1' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'endif' Comment.Preproc
+'\n' Comment.Preproc
+
+'\n' Text
+
+'extern' Keyword
+' ' Text
+'YYSTYPE' Name
+' ' Text
+'yylval' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+'#' Comment.Preproc
+'if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)' Comment.Preproc
+'\n' Comment.Preproc
+
+'typedef' Keyword
+' ' Text
+'struct' Keyword
+' ' Text
+'YYLTYPE' Name.Class
+'\n' Text
+
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'first_line' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'first_column' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'last_line' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'last_column' Name
+';' Punctuation
+'\n' Text
+
+'}' Punctuation
+' ' Text
+'YYLTYPE' Name
+';' Punctuation
+'\n' Text
+
+'#' Comment.Preproc
+' define yyltype YYLTYPE ' Comment.Preproc
+'/* obsolescent; will be withdrawn */' Comment.Multiline
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+' define YYLTYPE_IS_DECLARED 1' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+' define YYLTYPE_IS_TRIVIAL 1' Comment.Preproc
+'\n' Comment.Preproc
+
+'#' Comment.Preproc
+'endif' Comment.Preproc
+'\n' Comment.Preproc
+
+'\n' Text
+
+'extern' Keyword
+' ' Text
+'YYLTYPE' Name
+' ' Text
+'yylloc' Name
+';' Punctuation
+'\n' Text
diff --git a/tests/lexers/ec/example2.txt b/tests/lexers/ec/example2.txt
new file mode 100644
index 00000000..277e4c6e
--- /dev/null
+++ b/tests/lexers/ec/example2.txt
@@ -0,0 +1,7714 @@
+---input---
+namespace gui;
+
+import "Window"
+
+public struct AnchorValue
+{
+ AnchorValueType type;
+
+ union
+ {
+ int distance;
+ float percent;
+ };
+ property int
+ {
+ set { distance = value; type = offset; }
+ get { return distance; }
+ }
+ property double
+ {
+ set { percent = (float) value; type = relative; }
+ get { return (double) percent; }
+ }
+
+ char * OnGetString(char * stringOutput, void * fieldData, bool * needClass)
+ {
+ if(type == offset)
+ {
+ sprintf(stringOutput, "%d", distance);
+ }
+ else if(type == relative)
+ {
+ int c;
+ int last = 0;
+ sprintf(stringOutput, "%f", percent);
+ c = strlen(stringOutput)-1;
+ for( ; c >= 0; c--)
+ {
+ if(stringOutput[c] != '0')
+ last = Max(last, c);
+ if(stringOutput[c] == '.')
+ {
+ if(last == c)
+ {
+ stringOutput[c+1] = '0';
+ stringOutput[c+2] = 0;
+ }
+ else
+ stringOutput[last+1] = 0;
+ break;
+ }
+ }
+ }
+ if(needClass) *needClass = false;
+ return stringOutput;
+ }
+
+ bool OnGetDataFromString(char * stringOutput)
+ {
+ char * end;
+ if(strchr(stringOutput, '.'))
+ {
+ float percent = (float)strtod(stringOutput, &end);
+
+ if(end != stringOutput)
+ {
+ this.percent = percent;
+ type = relative;
+ return true;
+ }
+ }
+ else if(stringOutput[0])
+ {
+ int distance = strtol(stringOutput, &end, 0);
+ if(end != stringOutput)
+ {
+ this.distance = distance;
+ type = offset;
+ return true;
+ }
+ }
+ else
+ {
+ distance = 0;
+ type = 0;
+ }
+ return false;
+ }
+};
+
+public struct MiddleAnchorValue
+{
+ AnchorValueType type;
+
+ union
+ {
+ int distance;
+ float percent;
+ };
+ property int
+ {
+ set { distance = value; type = none; }
+ get { return distance; }
+ }
+ property double
+ {
+ set { percent = (float) value; type = middleRelative; }
+ get { return (double) percent; }
+ }
+
+ char * OnGetString(char * stringOutput, void * fieldData, bool * needClass)
+ {
+ if(type == middleRelative)
+ {
+ int c;
+ int last = 0;
+ sprintf(stringOutput, "%f", percent);
+ c = strlen(stringOutput)-1;
+ for( ; c >= 0; c--)
+ {
+ if(stringOutput[c] != '0')
+ last = Max(last, c);
+ if(stringOutput[c] == '.')
+ {
+ if(last == c)
+ {
+ stringOutput[c+1] = '0';
+ stringOutput[c+2] = 0;
+ }
+ else
+ stringOutput[last+1] = 0;
+ break;
+ }
+ }
+ }
+ else if(type == none && distance)
+ {
+ sprintf(stringOutput, "%d", distance);
+ }
+ if(needClass) *needClass = false;
+ return stringOutput;
+ }
+
+ bool OnGetDataFromString(char * stringOutput)
+ {
+ if(strchr(stringOutput, '.'))
+ {
+ percent = (float)strtod(stringOutput, null);
+ type = middleRelative;
+ }
+ else
+ {
+ distance = strtol(stringOutput, null, 0);
+ type = none;
+ }
+ return true;
+ }
+};
+
+public enum AnchorValueType { none, offset, relative, middleRelative, cascade, vTiled, hTiled };
+
+public struct Anchor
+{
+ union { AnchorValue left; MiddleAnchorValue horz; };
+ union { AnchorValue top; MiddleAnchorValue vert; };
+ AnchorValue right, bottom;
+
+ char * OnGetString(char * stringOutput, void * fieldData, bool * needClass)
+ {
+ char tempString[256];
+ char * anchorValue;
+ bool subNeedClass;
+
+ tempString[0] = '\0';
+ anchorValue = left.OnGetString(tempString, null, &subNeedClass);
+ if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "left = "); strcat(stringOutput, anchorValue); }
+
+ //if(((!left.type && !right.type) && horz.distance) || horz.type == middleRelative)
+ if(!right.type && ((!left.type && horz.distance) || horz.type == middleRelative))
+ {
+ tempString[0] = '\0';
+ anchorValue = horz.OnGetString(tempString, null, &subNeedClass);
+ if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "horz = "); strcat(stringOutput, anchorValue); }
+ }
+
+ tempString[0] = '\0';
+ anchorValue = top.OnGetString(tempString, null, &subNeedClass);
+ if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "top = "); strcat(stringOutput, anchorValue); }
+
+ tempString[0] = '\0';
+ anchorValue = right.OnGetString(tempString, null, &subNeedClass);
+ if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "right = "); strcat(stringOutput, anchorValue); }
+
+ // if(((!top.type && !bottom.type) && vert.distance) || vert.type == middleRelative)
+ if(!bottom.type && ((!top.type && vert.distance) || vert.type == middleRelative))
+ {
+ tempString[0] = '\0';
+ anchorValue = vert.OnGetString(tempString, null, &subNeedClass);
+ if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "vert = "); strcat(stringOutput, anchorValue); }
+ }
+
+ tempString[0] = '\0';
+ anchorValue = bottom.OnGetString(tempString, null, &subNeedClass);
+ if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "bottom = "); strcat(stringOutput, anchorValue); }
+
+ return stringOutput;
+ }
+
+ bool OnGetDataFromString(char * string)
+ {
+ this = Anchor {};
+ return class::OnGetDataFromString(string);
+ }
+
+ bool OnSaveEdit(DropBox dropBox, void * object)
+ {
+ return dropBox.Save();
+ }
+
+ Window OnEdit(Window listBox, Window master, int x, int y, int w, int h, Window control)
+ {
+ char * string = "";
+ AnchorDropBox comboBox
+ {
+ editText = true;
+ parent = listBox;
+ master = master;
+ position = Point { x, y };
+ //clientSize = Size { h = h };
+ //size.w = w;
+ size = { w, h };
+ anchorValue = this;
+ control = control;
+ borderStyle = 0;
+ };
+
+ comboBox.Create();
+
+ {
+ char tempString[MAX_F_STRING] = "";
+ bool needClass = false;
+ char * result = OnGetString(tempString, null, &needClass);
+ if(result) string = result;
+ }
+ comboBox.contents = string;
+ return comboBox;
+ }
+};
+
+private class AnchorButton : Button
+{
+ toggle = true, bevel = false;
+
+ void OnRedraw(Surface surface)
+ {
+ int cw = clientSize.w;
+ int ch = clientSize.h;
+
+ surface.SetForeground(black);
+ if(checked)
+ {
+ surface.SetBackground(Color { 85,85,85 });
+ surface.Area(0,0, cw-1, ch-1);
+ }
+ else
+ surface.LineStipple(0xAAAA);
+
+ surface.Rectangle(0,0,cw-1,ch-1);
+
+ if(active)
+ {
+ surface.LineStipple(0xAAAA);
+ surface.Rectangle(2,2,cw-3,ch-3);
+ }
+ }
+
+ bool AnchorEditor::NotifyClicked(Button button, int x, int y, Modifiers mods)
+ {
+ AnchorDropBox anchorDropBox = (AnchorDropBox)master;
+ Anchor anchor = anchorDropBox.anchorValue;
+ Window control = anchorDropBox.control;
+ DataBox dropMaster = (DataBox)anchorDropBox.master;
+ int id = button.id;
+
+ switch(id)
+ {
+ case 0: anchor.left.type = button.checked ? offset : none; break;
+ case 1: anchor.top.type = button.checked ? offset : none; break;
+ case 2: anchor.right.type = button.checked ? offset : none; break;
+ case 3: anchor.bottom.type = button.checked ? offset : none; break;
+ }
+
+ if(anchor.horz.type == middleRelative && (id == 0 || id == 2))
+ {
+ anchorDropBox.relButtons[0].checked = false;
+ anchorDropBox.relButtons[2].checked = false;
+ }
+ if(anchor.vert.type == middleRelative && (id == 1 || id == 3))
+ {
+ anchorDropBox.relButtons[1].checked = false;
+ anchorDropBox.relButtons[3].checked = false;
+ }
+ anchorDropBox.relButtons[id].checked = false;
+
+ //anchor.horz.type = none;
+ //anchor.vert.type = none;
+
+ {
+ int vpw, vph;
+ int x,y,w,h;
+ Window parent = control.parent;
+
+ // Fix Anchor
+ x = control.position.x;
+ y = control.position.y;
+ w = control.size.w;
+ h = control.size.h;
+
+ vpw = parent.clientSize.w;
+ vph = parent.clientSize.h;
+ if(control.nonClient)
+ {
+ vpw = parent.size.w;
+ vph = parent.size.h;
+ }
+ else if(((BorderBits)control.borderStyle).fixed)
+ {
+ if(!control.dontScrollHorz && parent.scrollArea.w) vpw = parent.scrollArea.w;
+ if(!control.dontScrollVert && parent.scrollArea.h) vph = parent.scrollArea.h;
+ }
+
+ if(anchor.left.type == offset) anchor.left.distance = x;
+ else if(anchor.left.type == relative) anchor.left.percent = (float)x / vpw;
+ if(anchor.top.type == offset) anchor.top.distance = y;
+ else if(anchor.top.type == relative) anchor.top.percent = (float)y / vph;
+ if(anchor.right.type == offset) anchor.right.distance = vpw - (x + w);
+ //else if(anchor.right.type == relative) anchor.right.percent = (float) (x + w) / vpw;
+ else if(anchor.right.type == relative) anchor.right.percent = (float) (vpw - (x + w)) / vpw;
+ if(anchor.bottom.type == offset) anchor.bottom.distance = vph - (y + h);
+ //else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (y + h) / vph;
+ else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (vph - (y + h)) / vph;
+
+ if(!anchor.left.type && !anchor.right.type)
+ {
+ anchor.horz.distance = (x + w / 2) - (vpw / 2);
+ //anchor.horz.type = anchor.horz.distance ? offset : 0;
+ }
+ else if(anchor.horz.type == middleRelative) anchor.horz.percent = (float) ((x + w / 2) - (vpw / 2)) / vpw;
+ if(!anchor.top.type && !anchor.bottom.type)
+ {
+ anchor.vert.distance = (y + h / 2) - (vph / 2);
+ //anchor.vert.type = anchor.vert.distance ? offset : 0;
+ }
+ else if(anchor.vert.type == middleRelative) anchor.vert.percent = (float)((y + h / 2) - (vph / 2)) / vph;
+ }
+
+ {
+ char tempString[1024] = "";
+ bool needClass = false;
+ char * string = anchor.OnGetString(tempString, null, &needClass);
+ anchorDropBox.contents = string;
+ }
+
+ dropMaster.SetData(&anchor, false);
+ anchorDropBox.anchorValue = anchor;
+ return true;
+ }
+}
+
+private class AnchorRelButton : Button
+{
+ toggle = true;
+ bevel = false;
+ text = "%";
+ //bevelOver = true;
+
+ void OnRedraw(Surface surface)
+ {
+ int cw = clientSize.w;
+ int ch = clientSize.h;
+
+ if(checked)
+ {
+ surface.SetForeground(black);
+ }
+ else
+ {
+ surface.SetForeground(Color{170,170,170});
+ }
+ surface.WriteText(5,2, "%", 1);
+
+ if(active)
+ {
+ surface.LineStipple(0xAAAA);
+ surface.Rectangle(3,3,cw-4,ch-4);
+ }
+ }
+
+ bool AnchorEditor::NotifyClicked(Button button, int x, int y, Modifiers mods)
+ {
+ AnchorDropBox anchorDropBox = (AnchorDropBox)master;
+ Anchor anchor = anchorDropBox.anchorValue;
+ Window control = anchorDropBox.control;
+ DataBox dropMaster = (DataBox)anchorDropBox.master;
+ int id = button.id;
+
+ if((id == 0 || id == 2) && ((!anchor.left.type && !anchor.right.type) || anchor.left.type == middleRelative))
+ {
+ if(button.checked) anchor.horz.type = middleRelative; else anchor.horz.type = none;
+ anchorDropBox.relButtons[(id + 2)%4].checked = button.checked;
+ }
+ else if((id == 1 || id == 3) && ((!anchor.top.type && !anchor.bottom.type) || anchor.top.type == middleRelative))
+ {
+ if(button.checked) anchor.vert.type = middleRelative; else anchor.vert.type = none;
+ anchorDropBox.relButtons[(id + 2)%4].checked = button.checked;
+ }
+ else
+ {
+ switch(id)
+ {
+ case 0: anchor.left.type = button.checked ? relative : (anchor.left.type ? offset : none); break;
+ case 1: anchor.top.type = button.checked ? relative : (anchor.top.type ? offset : none); break;
+ case 2: anchor.right.type = button.checked ? relative : (anchor.right.type ? offset : none); break;
+ case 3: anchor.bottom.type = button.checked ? relative : (anchor.bottom.type ? offset : none); break;
+ }
+ anchorDropBox.buttons[id].checked = true;
+ if(anchor.horz.type == middleRelative) anchor.horz.type = none;
+ if(anchor.vert.type == middleRelative) anchor.vert.type = none;
+ }
+
+ {
+ int vpw, vph;
+ int x,y,w,h;
+ Window parent = control.parent;
+
+ // Fix Anchor
+ x = control.position.x;
+ y = control.position.y;
+ w = control.size.w;
+ h = control.size.h;
+
+ vpw = parent.clientSize.w;
+ vph = parent.clientSize.h;
+ if(control.nonClient)
+ {
+ vpw = parent.size.w;
+ vph = parent.size.h;
+ }
+ else if(((BorderBits)control.borderStyle).fixed)
+ {
+ if(!control.dontScrollHorz && parent.scrollArea.w) vpw = parent.scrollArea.w;
+ if(!control.dontScrollVert && parent.scrollArea.h) vph = parent.scrollArea.h;
+ }
+
+ if(anchor.left.type == offset) anchor.left.distance = x;
+ else if(anchor.left.type == relative) anchor.left.percent = (float)x / vpw;
+ if(anchor.top.type == offset) anchor.top.distance = y;
+ else if(anchor.top.type == relative) anchor.top.percent = (float)y / vph;
+ if(anchor.right.type == offset) anchor.right.distance = vpw - (x + w);
+ //else if(anchor.right.type == relative) anchor.right.percent = (float) (x + w) / vpw;
+ else if(anchor.right.type == relative) anchor.right.percent = (float) (vpw - (x + w)) / vpw;
+ if(anchor.bottom.type == offset) anchor.bottom.distance = vph - (y + h);
+ //else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (y + h) / vph;
+ else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (vph - (y + h)) / vph;
+
+ if(!anchor.left.type && !anchor.right.type)
+ {
+ anchor.horz.distance = (x + w / 2) - (vpw / 2);
+ //anchor.horz.type = anchor.horz.distance ? offset : none;
+ }
+ else if(anchor.horz.type == middleRelative) anchor.horz.percent = (float) ((x + w / 2) - (vpw / 2)) / vpw;
+ if(!anchor.top.type && !anchor.bottom.type)
+ {
+ anchor.vert.distance = (y + h / 2) - (vph / 2);
+ //anchor.vert.type = anchor.vert.distance ? offset : none;
+ }
+ else if(anchor.vert.type == middleRelative) anchor.vert.percent = (float)((y + h / 2) - (vph / 2)) / vph;
+ }
+
+ {
+ char tempString[1024] = "";
+ bool needClass = false;
+ char * string = anchor.OnGetString(tempString, null, &needClass);
+ anchorDropBox.contents = string;
+ }
+
+ dropMaster.SetData(&anchor, false);
+ anchorDropBox.anchorValue = anchor;
+ return true;
+ }
+}
+
+private class AnchorEditor : Window
+{
+ interim = true;
+ borderStyle = deepContour;
+ size.h = 92;
+
+ bool OnKeyDown(Key key, unichar ch)
+ {
+ if(key == escape)
+ return master.OnKeyDown(key, ch);
+ return true;
+ }
+}
+
+private class AnchorDropBox : DropBox
+{
+ Anchor anchorValue;
+ Window control;
+ Button relButtons[4], buttons[4];
+
+ AnchorEditor anchorEditor
+ {
+ master = this;
+ autoCreate = false;
+ };
+
+ Window OnDropDown()
+ {
+ int c;
+ Button
+ {
+ anchorEditor,
+ anchor = Anchor { left = 28, top = 28, right = 28, bottom = 28 },
+ inactive = true, disabled = true
+ };
+ for(c = 0; c<4; c++)
+ {
+ Button button = buttons[c] = AnchorButton
+ {
+ anchorEditor, id = c,
+ size = Size { (c%2)?10:28, (c%2)?28:10 }
+ };
+ Button relButton = relButtons[c] = AnchorRelButton
+ {
+ anchorEditor, id = c;
+ };
+
+ switch(c)
+ {
+ case 0:
+ if(anchorValue.left.type && anchorValue.left.type != middleRelative) button.checked = true;
+ if(anchorValue.left.type == relative || anchorValue.horz.type == middleRelative) relButton.checked = true;
+
+ button.anchor = Anchor { left = 0 };
+ relButton.anchor = Anchor { left = 5, vert = 16 };
+ break;
+ case 1:
+ if(anchorValue.top.type && anchorValue.top.type != middleRelative) button.checked = true;
+ if(anchorValue.top.type == relative || anchorValue.vert.type == middleRelative) relButton.checked = true;
+
+ button.anchor = Anchor { top = 0 };
+ relButton.anchor = Anchor { top = 5, horz = 16 };
+ break;
+ case 2:
+ if(anchorValue.right.type && anchorValue.right.type != middleRelative) button.checked = true;
+ if(anchorValue.right.type == relative || anchorValue.horz.type == middleRelative) relButton.checked = true;
+
+ button.anchor = Anchor { right = 0 };
+ relButton.anchor = Anchor { right = 5, vert = 16 };
+ break;
+ case 3:
+ if(anchorValue.bottom.type && anchorValue.bottom.type != middleRelative) button.checked = true;
+ if(anchorValue.bottom.type == relative || anchorValue.vert.type == middleRelative) relButton.checked = true;
+
+ button.anchor = Anchor { bottom = 0 };
+ relButton.anchor = Anchor { bottom = 5, horz = 16 };
+ break;
+ }
+ }
+ anchorEditor.Create();
+ return anchorEditor;
+ }
+
+ void OnCloseDropDown(Window anchorEditor)
+ {
+ // TOFIX: Patch for update bug
+ master.Update(null);
+ anchorEditor.Destroy(0);
+ }
+
+ bool DataBox::NotifyTextEntry(AnchorDropBox dropBox, char * string, bool save)
+ {
+ Anchor anchor = dropBox.anchorValue;
+ Window control = dropBox.control;
+
+ if(save)
+ {
+ if(anchor.OnGetDataFromString(string))
+ {
+ SetData(&anchor, false);
+ dropBox.anchorValue = anchor;
+ }
+ }
+ else
+ {
+ char tempString[1024] = "";
+ bool needClass = false;
+ char * string = anchor.OnGetString(tempString, null, &needClass);
+ dropBox.contents = string;
+ }
+ return true;
+ }
+}
+
+---tokens---
+'namespace' Keyword
+' ' Text
+'gui' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+'import' Keyword
+' ' Text
+'"' Literal.String
+'Window' Literal.String
+'"' Literal.String
+'\n' Text
+
+'\n' Text
+
+'public' Keyword
+' ' Text
+'struct' Keyword
+' ' Text
+'AnchorValue' Name.Class
+'\n' Text
+
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'AnchorValueType' Name
+' ' Text
+'type' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'union' Keyword
+'\n ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'distance' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'float' Keyword.Type
+' ' Text
+'percent' Name
+';' Punctuation
+' \n ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'property' Keyword
+' ' Text
+'int' Keyword.Type
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'set' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'value' Name.Builtin
+';' Punctuation
+' ' Text
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'offset' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'distance' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'property' Keyword
+' ' Text
+'double' Keyword.Type
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'set' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+' ' Text
+'value' Name.Builtin
+';' Punctuation
+' ' Text
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'relative' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'(' Punctuation
+'double' Keyword.Type
+')' Punctuation
+' ' Text
+'percent' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'OnGetString' Name
+'(' Punctuation
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'void' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'fieldData' Name
+',' Punctuation
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'needClass' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'offset' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'sprintf' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+'%d' Literal.String
+'"' Literal.String
+',' Punctuation
+' ' Text
+'distance' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Keyword
+'(' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'relative' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'c' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'last' Name
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+' ' Text
+'sprintf' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+'%f' Literal.String
+'"' Literal.String
+',' Punctuation
+' ' Text
+'percent' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'c' Name
+' ' Text
+'=' Operator
+' ' Text
+'strlen' Name
+'(' Punctuation
+'stringOutput' Name
+')' Punctuation
+'-1' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+' ' Text
+'for' Keyword
+'(' Punctuation
+' ' Text
+';' Punctuation
+' ' Text
+'c' Name
+' ' Text
+'>' Operator
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+' ' Text
+'c' Name
+'-' Operator
+'-' Operator
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'stringOutput' Name
+'[' Punctuation
+'c' Name
+']' Punctuation
+' ' Text
+'!' Operator
+'=' Operator
+' ' Text
+"'" Literal.String.Char
+'0' Literal.String.Char
+"'" Literal.String.Char
+')' Punctuation
+' \n ' Text
+'last' Name
+' ' Text
+'=' Operator
+' ' Text
+'Max' Name
+'(' Punctuation
+'last' Name
+',' Punctuation
+' ' Text
+'c' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'stringOutput' Name
+'[' Punctuation
+'c' Name
+']' Punctuation
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+"'" Literal.String.Char
+'.' Literal.String.Char
+"'" Literal.String.Char
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'last' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'c' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'stringOutput' Name
+'[' Punctuation
+'c' Name
+'+' Operator
+'1' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+"'" Literal.String.Char
+'0' Literal.String.Char
+"'" Literal.String.Char
+';' Punctuation
+'\n' Text
+
+' ' Text
+'stringOutput' Name
+'[' Punctuation
+'c' Name
+'+' Operator
+'2' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+'\n' Text
+
+' ' Text
+'stringOutput' Name
+'[' Punctuation
+'last' Name
+'+' Operator
+'1' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'needClass' Name
+')' Punctuation
+' ' Text
+'*' Operator
+'needClass' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'stringOutput' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'OnGetDataFromString' Name
+'(' Punctuation
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'stringOutput' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'end' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'strchr' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+"'" Literal.String.Char
+'.' Literal.String.Char
+"'" Literal.String.Char
+')' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'float' Keyword.Type
+' ' Text
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+'strtod' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'&' Operator
+'end' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' \n ' Text
+'if' Keyword
+'(' Punctuation
+'end' Name
+' ' Text
+'!' Operator
+'=' Operator
+' ' Text
+'stringOutput' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'this' Name.Builtin
+'.' Punctuation
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'percent' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'relative' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Keyword
+'(' Punctuation
+'stringOutput' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'strtol' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'&' Operator
+'end' Name
+',' Punctuation
+' ' Text
+'0' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'end' Name
+' ' Text
+'!' Operator
+'=' Operator
+' ' Text
+'stringOutput' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'this' Name.Builtin
+'.' Punctuation
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'distance' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'offset' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+' ' Text
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+'public' Keyword
+' ' Text
+'struct' Keyword
+' ' Text
+'MiddleAnchorValue' Name.Class
+'\n' Text
+
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'AnchorValueType' Name
+' ' Text
+'type' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'union' Keyword
+'\n ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'distance' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'float' Keyword.Type
+' ' Text
+'percent' Name
+';' Punctuation
+' \n ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'property' Keyword
+' ' Text
+'int' Keyword.Type
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'set' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'value' Name.Builtin
+';' Punctuation
+' ' Text
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'none' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'distance' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'property' Keyword
+' ' Text
+'double' Keyword.Type
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'set' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+' ' Text
+'value' Name.Builtin
+';' Punctuation
+' ' Text
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'middleRelative' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'get' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'return' Keyword
+' ' Text
+'(' Punctuation
+'double' Keyword.Type
+')' Punctuation
+' ' Text
+'percent' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'OnGetString' Name
+'(' Punctuation
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'void' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'fieldData' Name
+',' Punctuation
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'needClass' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'c' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'last' Name
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+' ' Text
+'sprintf' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+'%f' Literal.String
+'"' Literal.String
+',' Punctuation
+' ' Text
+'percent' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'c' Name
+' ' Text
+'=' Operator
+' ' Text
+'strlen' Name
+'(' Punctuation
+'stringOutput' Name
+')' Punctuation
+'-1' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+' ' Text
+'for' Keyword
+'(' Punctuation
+' ' Text
+';' Punctuation
+' ' Text
+'c' Name
+' ' Text
+'>' Operator
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+' ' Text
+'c' Name
+'-' Operator
+'-' Operator
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'stringOutput' Name
+'[' Punctuation
+'c' Name
+']' Punctuation
+' ' Text
+'!' Operator
+'=' Operator
+' ' Text
+"'" Literal.String.Char
+'0' Literal.String.Char
+"'" Literal.String.Char
+')' Punctuation
+' \n ' Text
+'last' Name
+' ' Text
+'=' Operator
+' ' Text
+'Max' Name
+'(' Punctuation
+'last' Name
+',' Punctuation
+' ' Text
+'c' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'stringOutput' Name
+'[' Punctuation
+'c' Name
+']' Punctuation
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+"'" Literal.String.Char
+'.' Literal.String.Char
+"'" Literal.String.Char
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'last' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'c' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'stringOutput' Name
+'[' Punctuation
+'c' Name
+'+' Operator
+'1' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+"'" Literal.String.Char
+'0' Literal.String.Char
+"'" Literal.String.Char
+';' Punctuation
+'\n' Text
+
+' ' Text
+'stringOutput' Name
+'[' Punctuation
+'c' Name
+'+' Operator
+'2' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+'\n' Text
+
+' ' Text
+'stringOutput' Name
+'[' Punctuation
+'last' Name
+'+' Operator
+'1' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Keyword
+'(' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'none' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'distance' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'sprintf' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+'%d' Literal.String
+'"' Literal.String
+',' Punctuation
+' ' Text
+'distance' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'needClass' Name
+')' Punctuation
+' ' Text
+'*' Operator
+'needClass' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'stringOutput' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'OnGetDataFromString' Name
+'(' Punctuation
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'stringOutput' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'strchr' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+"'" Literal.String.Char
+'.' Literal.String.Char
+"'" Literal.String.Char
+')' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+'strtod' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'null' Name.Builtin
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'middleRelative' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'strtol' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'null' Name.Builtin
+',' Punctuation
+' ' Text
+'0' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'none' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+'public' Keyword
+' ' Text
+'enum' Keyword
+' ' Text
+'AnchorValueType' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'none' Name
+',' Punctuation
+' ' Text
+'offset' Name
+',' Punctuation
+' ' Text
+'relative' Name
+',' Punctuation
+' ' Text
+'middleRelative' Name
+',' Punctuation
+' ' Text
+'cascade' Name
+',' Punctuation
+' ' Text
+'vTiled' Name
+',' Punctuation
+' ' Text
+'hTiled' Name
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+'public' Keyword
+' ' Text
+'struct' Keyword
+' ' Text
+'Anchor' Name.Class
+'\n' Text
+
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'union' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'AnchorValue' Name
+' ' Text
+'left' Name
+';' Punctuation
+' ' Text
+'MiddleAnchorValue' Name
+' ' Text
+'horz' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'union' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'AnchorValue' Name
+' ' Text
+'top' Name
+';' Punctuation
+' ' Text
+'MiddleAnchorValue' Name
+' ' Text
+'vert' Name
+';' Punctuation
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'AnchorValue' Name
+' ' Text
+'right' Name
+',' Punctuation
+' ' Text
+'bottom' Name
+';' Punctuation
+' \n\n ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'OnGetString' Name.Function
+'(' Punctuation
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'void' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'fieldData' Name
+',' Punctuation
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'needClass' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'tempString' Name
+'[' Punctuation
+'256' Literal.Number.Integer
+']' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'anchorValue' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'subNeedClass' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'tempString' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+"'" Literal.String.Char
+'\\0' Literal.String.Char
+"'" Literal.String.Char
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorValue' Name
+' ' Text
+'=' Operator
+' ' Text
+'left' Name
+'.' Punctuation
+'OnGetString' Name
+'(' Punctuation
+'tempString' Name
+',' Punctuation
+' ' Text
+'null' Name.Builtin
+',' Punctuation
+' ' Text
+'&' Operator
+'subNeedClass' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+')' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'if' Keyword
+'(' Punctuation
+'stringOutput' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+')' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+', ' Literal.String
+'"' Literal.String
+')' Punctuation
+';' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+'left = ' Literal.String
+'"' Literal.String
+')' Punctuation
+';' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'anchorValue' Name
+')' Punctuation
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' \n ' Text
+'//if(((!left.type && !right.type) && horz.distance) || horz.type == middleRelative)\n' Comment.Single
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'!' Operator
+'right' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'(' Punctuation
+'(' Punctuation
+'!' Operator
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'horz' Name
+'.' Punctuation
+'distance' Name
+')' Punctuation
+' ' Text
+'|' Operator
+'|' Operator
+' ' Text
+'horz' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'tempString' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+"'" Literal.String.Char
+'\\0' Literal.String.Char
+"'" Literal.String.Char
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorValue' Name
+' ' Text
+'=' Operator
+' ' Text
+'horz' Name
+'.' Punctuation
+'OnGetString' Name
+'(' Punctuation
+'tempString' Name
+',' Punctuation
+' ' Text
+'null' Name.Builtin
+',' Punctuation
+' ' Text
+'&' Operator
+'subNeedClass' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+')' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'if' Keyword
+'(' Punctuation
+'stringOutput' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+')' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+', ' Literal.String
+'"' Literal.String
+')' Punctuation
+';' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+'horz = ' Literal.String
+'"' Literal.String
+')' Punctuation
+';' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'anchorValue' Name
+')' Punctuation
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' \n ' Text
+'tempString' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+"'" Literal.String.Char
+'\\0' Literal.String.Char
+"'" Literal.String.Char
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorValue' Name
+' ' Text
+'=' Operator
+' ' Text
+'top' Name
+'.' Punctuation
+'OnGetString' Name
+'(' Punctuation
+'tempString' Name
+',' Punctuation
+' ' Text
+'null' Name.Builtin
+',' Punctuation
+' ' Text
+'&' Operator
+'subNeedClass' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+')' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'if' Keyword
+'(' Punctuation
+'stringOutput' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+')' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+', ' Literal.String
+'"' Literal.String
+')' Punctuation
+';' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+'top = ' Literal.String
+'"' Literal.String
+')' Punctuation
+';' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'anchorValue' Name
+')' Punctuation
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' \n ' Text
+'tempString' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+"'" Literal.String.Char
+'\\0' Literal.String.Char
+"'" Literal.String.Char
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorValue' Name
+' ' Text
+'=' Operator
+' ' Text
+'right' Name
+'.' Punctuation
+'OnGetString' Name
+'(' Punctuation
+'tempString' Name
+',' Punctuation
+' ' Text
+'null' Name.Builtin
+',' Punctuation
+' ' Text
+'&' Operator
+'subNeedClass' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+')' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'if' Keyword
+'(' Punctuation
+'stringOutput' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+')' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+', ' Literal.String
+'"' Literal.String
+')' Punctuation
+';' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+'right = ' Literal.String
+'"' Literal.String
+')' Punctuation
+';' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'anchorValue' Name
+')' Punctuation
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'// if(((!top.type && !bottom.type) && vert.distance) || vert.type == middleRelative)\n' Comment.Single
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'!' Operator
+'bottom' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'(' Punctuation
+'(' Punctuation
+'!' Operator
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'vert' Name
+'.' Punctuation
+'distance' Name
+')' Punctuation
+' ' Text
+'|' Operator
+'|' Operator
+' ' Text
+'vert' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'tempString' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+"'" Literal.String.Char
+'\\0' Literal.String.Char
+"'" Literal.String.Char
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorValue' Name
+' ' Text
+'=' Operator
+' ' Text
+'vert' Name
+'.' Punctuation
+'OnGetString' Name
+'(' Punctuation
+'tempString' Name
+',' Punctuation
+' ' Text
+'null' Name.Builtin
+',' Punctuation
+' ' Text
+'&' Operator
+'subNeedClass' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+')' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'if' Keyword
+'(' Punctuation
+'stringOutput' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+')' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+', ' Literal.String
+'"' Literal.String
+')' Punctuation
+';' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+'vert = ' Literal.String
+'"' Literal.String
+')' Punctuation
+';' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'anchorValue' Name
+')' Punctuation
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' \n ' Text
+'tempString' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+"'" Literal.String.Char
+'\\0' Literal.String.Char
+"'" Literal.String.Char
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorValue' Name
+' ' Text
+'=' Operator
+' ' Text
+'bottom' Name
+'.' Punctuation
+'OnGetString' Name
+'(' Punctuation
+'tempString' Name
+',' Punctuation
+' ' Text
+'null' Name.Builtin
+',' Punctuation
+' ' Text
+'&' Operator
+'subNeedClass' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+')' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'if' Keyword
+'(' Punctuation
+'stringOutput' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+')' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+', ' Literal.String
+'"' Literal.String
+')' Punctuation
+';' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'"' Literal.String
+'bottom = ' Literal.String
+'"' Literal.String
+')' Punctuation
+';' Punctuation
+' ' Text
+'strcat' Name
+'(' Punctuation
+'stringOutput' Name
+',' Punctuation
+' ' Text
+'anchorValue' Name
+')' Punctuation
+';' Punctuation
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' \n ' Text
+'return' Keyword
+' ' Text
+'stringOutput' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'OnGetDataFromString' Name.Function
+'(' Punctuation
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'string' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'this' Name.Builtin
+' ' Text
+'=' Operator
+' ' Text
+'Anchor' Name
+' ' Text
+'{' Punctuation
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'class' Keyword
+':' Operator
+':' Operator
+'OnGetDataFromString' Name
+'(' Punctuation
+'string' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'OnSaveEdit' Name.Function
+'(' Punctuation
+'DropBox' Name
+' ' Text
+'dropBox' Name
+',' Punctuation
+' ' Text
+'void' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'object' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'dropBox' Name
+'.' Punctuation
+'Save' Name
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'Window' Name
+' ' Text
+'OnEdit' Name.Function
+'(' Punctuation
+'Window' Name
+' ' Text
+'listBox' Name
+',' Punctuation
+' ' Text
+'Window' Name
+' ' Text
+'master' Name
+',' Punctuation
+' ' Text
+'int' Keyword.Type
+' ' Text
+'x' Name
+',' Punctuation
+' ' Text
+'int' Keyword.Type
+' ' Text
+'y' Name
+',' Punctuation
+' ' Text
+'int' Keyword.Type
+' ' Text
+'w' Name
+',' Punctuation
+' ' Text
+'int' Keyword.Type
+' ' Text
+'h' Name
+',' Punctuation
+' ' Text
+'Window' Name
+' ' Text
+'control' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'string' Name
+' ' Text
+'=' Operator
+' ' Text
+'"' Literal.String
+'"' Literal.String
+';' Punctuation
+'\n' Text
+
+' ' Text
+'AnchorDropBox' Name
+' ' Text
+'comboBox' Name
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'editText' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'parent' Name
+' ' Text
+'=' Operator
+' ' Text
+'listBox' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'master' Name
+' ' Text
+'=' Operator
+' ' Text
+'master' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'position' Name
+' ' Text
+'=' Operator
+' ' Text
+'Point' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'x' Name
+',' Punctuation
+' ' Text
+'y' Name
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'//clientSize = Size { h = h };\n' Comment.Single
+
+' ' Text
+'//size.w = w;\n' Comment.Single
+
+' ' Text
+'size' Name
+' ' Text
+'=' Operator
+' ' Text
+'{' Punctuation
+' ' Text
+'w' Name
+',' Punctuation
+' ' Text
+'h' Name
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorValue' Name
+' ' Text
+'=' Operator
+' ' Text
+'this' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'control' Name
+' ' Text
+'=' Operator
+' ' Text
+'control' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'borderStyle' Name
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' \n ' Text
+'comboBox' Name
+'.' Punctuation
+'Create' Name
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'tempString' Name
+'[' Punctuation
+'MAX_F_STRING' Name
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+'"' Literal.String
+'"' Literal.String
+';' Punctuation
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'needClass' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'result' Name
+' ' Text
+'=' Operator
+' ' Text
+'OnGetString' Name
+'(' Punctuation
+'tempString' Name
+',' Punctuation
+' ' Text
+'null' Name.Builtin
+',' Punctuation
+' ' Text
+'&' Operator
+'needClass' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'result' Name
+')' Punctuation
+' ' Text
+'string' Name
+' ' Text
+'=' Operator
+' ' Text
+'result' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'comboBox' Name
+'.' Punctuation
+'contents' Name
+' ' Text
+'=' Operator
+' ' Text
+'string' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'comboBox' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+'private' Keyword
+' ' Text
+'class' Keyword
+' ' Text
+'AnchorButton' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'Button' Name
+'\n' Text
+
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'toggle' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+',' Punctuation
+' ' Text
+'bevel' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'void' Keyword.Type
+' ' Text
+'OnRedraw' Name.Function
+'(' Punctuation
+'Surface' Name
+' ' Text
+'surface' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'cw' Name
+' ' Text
+'=' Operator
+' ' Text
+'clientSize' Name
+'.' Punctuation
+'w' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'ch' Name
+' ' Text
+'=' Operator
+' ' Text
+'clientSize' Name
+'.' Punctuation
+'h' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'surface' Name
+'.' Punctuation
+'SetForeground' Name
+'(' Punctuation
+'black' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'checked' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'surface' Name
+'.' Punctuation
+'SetBackground' Name
+'(' Punctuation
+'Color' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'85' Literal.Number.Integer
+',' Punctuation
+'85' Literal.Number.Integer
+',' Punctuation
+'85' Literal.Number.Integer
+' ' Text
+'}' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'surface' Name
+'.' Punctuation
+'Area' Name
+'(' Punctuation
+'0' Literal.Number.Integer
+',' Punctuation
+'0' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'cw' Name
+'-1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'ch' Name
+'-1' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+'\n' Text
+
+' ' Text
+'surface' Name
+'.' Punctuation
+'LineStipple' Name
+'(' Punctuation
+'0xAAAA' Literal.Number.Hex
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'surface' Name
+'.' Punctuation
+'Rectangle' Name
+'(' Punctuation
+'0' Literal.Number.Integer
+',' Punctuation
+'0' Literal.Number.Integer
+',' Punctuation
+'cw' Name
+'-1' Literal.Number.Integer
+',' Punctuation
+'ch' Name
+'-1' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'active' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'surface' Name
+'.' Punctuation
+'LineStipple' Name
+'(' Punctuation
+'0xAAAA' Literal.Number.Hex
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'surface' Name
+'.' Punctuation
+'Rectangle' Name
+'(' Punctuation
+'2' Literal.Number.Integer
+',' Punctuation
+'2' Literal.Number.Integer
+',' Punctuation
+'cw' Name
+'-3' Literal.Number.Integer
+',' Punctuation
+'ch' Name
+'-3' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'AnchorEditor' Name
+':' Operator
+':' Operator
+'NotifyClicked' Name
+'(' Punctuation
+'Button' Name
+' ' Text
+'button' Name
+',' Punctuation
+' ' Text
+'int' Keyword.Type
+' ' Text
+'x' Name
+',' Punctuation
+' ' Text
+'int' Keyword.Type
+' ' Text
+'y' Name
+',' Punctuation
+' ' Text
+'Modifiers' Name
+' ' Text
+'mods' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'AnchorDropBox' Name
+' ' Text
+'anchorDropBox' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'AnchorDropBox' Name
+')' Punctuation
+'master' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Anchor' Name
+' ' Text
+'anchor' Name
+' ' Text
+'=' Operator
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'anchorValue' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Window' Name
+' ' Text
+'control' Name
+' ' Text
+'=' Operator
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'control' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'DataBox' Name
+' ' Text
+'dropMaster' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'DataBox' Name
+')' Punctuation
+'anchorDropBox' Name
+'.' Punctuation
+'master' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'id' Name
+' ' Text
+'=' Operator
+' ' Text
+'button' Name
+'.' Punctuation
+'id' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'switch' Keyword
+'(' Punctuation
+'id' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'0' Literal.Number.Integer
+':' Operator
+' ' Text
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'?' Operator
+' ' Text
+'offset' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'none' Name
+';' Punctuation
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'1' Literal.Number.Integer
+':' Operator
+' ' Text
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'?' Operator
+' ' Text
+'offset' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'none' Name
+';' Punctuation
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'2' Literal.Number.Integer
+':' Operator
+' ' Text
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'?' Operator
+' ' Text
+'offset' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'none' Name
+';' Punctuation
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'3' Literal.Number.Integer
+':' Operator
+' ' Text
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'?' Operator
+' ' Text
+'offset' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'none' Name
+';' Punctuation
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'horz' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'(' Punctuation
+'id' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+' ' Text
+'|' Operator
+'|' Operator
+' ' Text
+'id' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'relButtons' Name
+'[' Punctuation
+'0' Literal.Number.Integer
+']' Punctuation
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'relButtons' Name
+'[' Punctuation
+'2' Literal.Number.Integer
+']' Punctuation
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'vert' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'(' Punctuation
+'id' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'1' Literal.Number.Integer
+' ' Text
+'|' Operator
+'|' Operator
+' ' Text
+'id' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'3' Literal.Number.Integer
+')' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'relButtons' Name
+'[' Punctuation
+'1' Literal.Number.Integer
+']' Punctuation
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'relButtons' Name
+'[' Punctuation
+'3' Literal.Number.Integer
+']' Punctuation
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'relButtons' Name
+'[' Punctuation
+'id' Name
+']' Punctuation
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'//anchor.horz.type = none;\n' Comment.Single
+
+' ' Text
+'//anchor.vert.type = none;\n' Comment.Single
+
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'vpw' Name
+',' Punctuation
+' ' Text
+'vph' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'x' Name
+',' Punctuation
+'y' Name
+',' Punctuation
+'w' Name
+',' Punctuation
+'h' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Window' Name
+' ' Text
+'parent' Name
+' ' Text
+'=' Operator
+' ' Text
+'control' Name
+'.' Punctuation
+'parent' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'// Fix Anchor\n' Comment.Single
+
+' ' Text
+'x' Name
+' ' Text
+'=' Operator
+' ' Text
+'control' Name
+'.' Punctuation
+'position' Name
+'.' Punctuation
+'x' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'y' Name
+' ' Text
+'=' Operator
+' ' Text
+'control' Name
+'.' Punctuation
+'position' Name
+'.' Punctuation
+'y' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'w' Name
+' ' Text
+'=' Operator
+' ' Text
+'control' Name
+'.' Punctuation
+'size' Name
+'.' Punctuation
+'w' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'h' Name
+' ' Text
+'=' Operator
+' ' Text
+'control' Name
+'.' Punctuation
+'size' Name
+'.' Punctuation
+'h' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'vpw' Name
+' ' Text
+'=' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'clientSize' Name
+'.' Punctuation
+'w' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'vph' Name
+' ' Text
+'=' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'clientSize' Name
+'.' Punctuation
+'h' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'control' Name
+'.' Punctuation
+'nonClient' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'vpw' Name
+' ' Text
+'=' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'size' Name
+'.' Punctuation
+'w' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'vph' Name
+' ' Text
+'=' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'size' Name
+'.' Punctuation
+'h' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Keyword
+'(' Punctuation
+'(' Punctuation
+'(' Punctuation
+'BorderBits' Name
+')' Punctuation
+'control' Name
+'.' Punctuation
+'borderStyle' Name
+')' Punctuation
+'.' Punctuation
+'fixed' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'!' Operator
+'control' Name
+'.' Punctuation
+'dontScrollHorz' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'scrollArea' Name
+'.' Punctuation
+'w' Name
+')' Punctuation
+' ' Text
+'vpw' Name
+' ' Text
+'=' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'scrollArea' Name
+'.' Punctuation
+'w' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'!' Operator
+'control' Name
+'.' Punctuation
+'dontScrollVert' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'scrollArea' Name
+'.' Punctuation
+'h' Name
+')' Punctuation
+' ' Text
+'vph' Name
+' ' Text
+'=' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'scrollArea' Name
+'.' Punctuation
+'h' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'offset' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'x' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Name.Function
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'relative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+'x' Name
+' ' Text
+'/' Operator
+' ' Text
+'vpw' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'offset' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'y' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Name.Function
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'relative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+'y' Name
+' ' Text
+'/' Operator
+' ' Text
+'vph' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'offset' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'vpw' Name
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'x' Name
+' ' Text
+'+' Operator
+' ' Text
+'w' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'//else if(anchor.right.type == relative) anchor.right.percent = (float) (x + w) / vpw;\n' Comment.Single
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Name.Function
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'relative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+' ' Text
+'(' Punctuation
+'vpw' Name
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'x' Name
+' ' Text
+'+' Operator
+' ' Text
+'w' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'/' Operator
+' ' Text
+'vpw' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'offset' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'vph' Name
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'y' Name
+' ' Text
+'+' Operator
+' ' Text
+'h' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'//else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (y + h) / vph;\n' Comment.Single
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Name.Function
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'relative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+' ' Text
+'(' Punctuation
+'vph' Name
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'y' Name
+' ' Text
+'+' Operator
+' ' Text
+'h' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'/' Operator
+' ' Text
+'vph' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'!' Operator
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'!' Operator
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'type' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'anchor' Name
+'.' Punctuation
+'horz' Name
+'.' Punctuation
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'x' Name
+' ' Text
+'+' Operator
+' ' Text
+'w' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'vpw' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'//anchor.horz.type = anchor.horz.distance ? offset : 0;\n' Comment.Single
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'horz' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'horz' Name
+'.' Punctuation
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+' ' Text
+'(' Punctuation
+'(' Punctuation
+'x' Name
+' ' Text
+'+' Operator
+' ' Text
+'w' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'vpw' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+')' Punctuation
+' ' Text
+'/' Operator
+' ' Text
+'vpw' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'!' Operator
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'!' Operator
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'type' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'anchor' Name
+'.' Punctuation
+'vert' Name
+'.' Punctuation
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'y' Name
+' ' Text
+'+' Operator
+' ' Text
+'h' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'vph' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'//anchor.vert.type = anchor.vert.distance ? offset : 0;\n' Comment.Single
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'vert' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'vert' Name
+'.' Punctuation
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+'(' Punctuation
+'(' Punctuation
+'y' Name
+' ' Text
+'+' Operator
+' ' Text
+'h' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'vph' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+')' Punctuation
+' ' Text
+'/' Operator
+' ' Text
+'vph' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'tempString' Name
+'[' Punctuation
+'1024' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+'"' Literal.String
+'"' Literal.String
+';' Punctuation
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'needClass' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'string' Name
+' ' Text
+'=' Operator
+' ' Text
+'anchor' Name
+'.' Punctuation
+'OnGetString' Name
+'(' Punctuation
+'tempString' Name
+',' Punctuation
+' ' Text
+'null' Name.Builtin
+',' Punctuation
+' ' Text
+'&' Operator
+'needClass' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'contents' Name
+' ' Text
+'=' Operator
+' ' Text
+'string' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'dropMaster' Name
+'.' Punctuation
+'SetData' Name
+'(' Punctuation
+'&' Operator
+'anchor' Name
+',' Punctuation
+' ' Text
+'false' Name.Builtin
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'anchorValue' Name
+' ' Text
+'=' Operator
+' ' Text
+'anchor' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+'private' Keyword
+' ' Text
+'class' Keyword
+' ' Text
+'AnchorRelButton' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'Button' Name
+'\n' Text
+
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'toggle' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'bevel' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'text' Name
+' ' Text
+'=' Operator
+' ' Text
+'"' Literal.String
+'%' Literal.String
+'"' Literal.String
+';' Punctuation
+'\n' Text
+
+' ' Text
+'//bevelOver = true;\n' Comment.Single
+
+'\n' Text
+
+' ' Text
+'void' Keyword.Type
+' ' Text
+'OnRedraw' Name.Function
+'(' Punctuation
+'Surface' Name
+' ' Text
+'surface' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'cw' Name
+' ' Text
+'=' Operator
+' ' Text
+'clientSize' Name
+'.' Punctuation
+'w' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'ch' Name
+' ' Text
+'=' Operator
+' ' Text
+'clientSize' Name
+'.' Punctuation
+'h' Name
+';' Punctuation
+'\n' Text
+
+' \n ' Text
+'if' Keyword
+'(' Punctuation
+'checked' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'surface' Name
+'.' Punctuation
+'SetForeground' Name
+'(' Punctuation
+'black' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'surface' Name
+'.' Punctuation
+'SetForeground' Name
+'(' Punctuation
+'Color' Name
+'{' Punctuation
+'170' Literal.Number.Integer
+',' Punctuation
+'170' Literal.Number.Integer
+',' Punctuation
+'170' Literal.Number.Integer
+'}' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'surface' Name
+'.' Punctuation
+'WriteText' Name
+'(' Punctuation
+'5' Literal.Number.Integer
+',' Punctuation
+'2' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'"' Literal.String
+'%' Literal.String
+'"' Literal.String
+',' Punctuation
+' ' Text
+'1' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'active' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'surface' Name
+'.' Punctuation
+'LineStipple' Name
+'(' Punctuation
+'0xAAAA' Literal.Number.Hex
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'surface' Name
+'.' Punctuation
+'Rectangle' Name
+'(' Punctuation
+'3' Literal.Number.Integer
+',' Punctuation
+'3' Literal.Number.Integer
+',' Punctuation
+'cw' Name
+'-4' Literal.Number.Integer
+',' Punctuation
+'ch' Name
+'-4' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'AnchorEditor' Name
+':' Operator
+':' Operator
+'NotifyClicked' Name
+'(' Punctuation
+'Button' Name
+' ' Text
+'button' Name
+',' Punctuation
+' ' Text
+'int' Keyword.Type
+' ' Text
+'x' Name
+',' Punctuation
+' ' Text
+'int' Keyword.Type
+' ' Text
+'y' Name
+',' Punctuation
+' ' Text
+'Modifiers' Name
+' ' Text
+'mods' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'AnchorDropBox' Name
+' ' Text
+'anchorDropBox' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'AnchorDropBox' Name
+')' Punctuation
+'master' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Anchor' Name
+' ' Text
+'anchor' Name
+' ' Text
+'=' Operator
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'anchorValue' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Window' Name
+' ' Text
+'control' Name
+' ' Text
+'=' Operator
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'control' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'DataBox' Name
+' ' Text
+'dropMaster' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'DataBox' Name
+')' Punctuation
+'anchorDropBox' Name
+'.' Punctuation
+'master' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'id' Name
+' ' Text
+'=' Operator
+' ' Text
+'button' Name
+'.' Punctuation
+'id' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'(' Punctuation
+'id' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+' ' Text
+'|' Operator
+'|' Operator
+' ' Text
+'id' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'(' Punctuation
+'(' Punctuation
+'!' Operator
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'!' Operator
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'type' Name
+')' Punctuation
+' ' Text
+'|' Operator
+'|' Operator
+' ' Text
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'button' Name
+'.' Punctuation
+'checked' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'horz' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'middleRelative' Name
+';' Punctuation
+' ' Text
+'else' Keyword
+' ' Text
+'anchor' Name
+'.' Punctuation
+'horz' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'none' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'relButtons' Name
+'[' Punctuation
+'(' Punctuation
+'id' Name
+' ' Text
+'+' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+'%' Operator
+'4' Literal.Number.Integer
+']' Punctuation
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Keyword
+'(' Punctuation
+'(' Punctuation
+'id' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'1' Literal.Number.Integer
+' ' Text
+'|' Operator
+'|' Operator
+' ' Text
+'id' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'3' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'(' Punctuation
+'(' Punctuation
+'!' Operator
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'!' Operator
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'type' Name
+')' Punctuation
+' ' Text
+'|' Operator
+'|' Operator
+' ' Text
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'button' Name
+'.' Punctuation
+'checked' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'vert' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'middleRelative' Name
+';' Punctuation
+' ' Text
+'else' Keyword
+' ' Text
+'anchor' Name
+'.' Punctuation
+'vert' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'none' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'relButtons' Name
+'[' Punctuation
+'(' Punctuation
+'id' Name
+' ' Text
+'+' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+'%' Operator
+'4' Literal.Number.Integer
+']' Punctuation
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'switch' Keyword
+'(' Punctuation
+'id' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'0' Literal.Number.Integer
+':' Operator
+' ' Text
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'?' Operator
+' ' Text
+'relative' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'?' Operator
+' ' Text
+'offset' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'none' Name
+')' Punctuation
+';' Punctuation
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'1' Literal.Number.Integer
+':' Operator
+' ' Text
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'?' Operator
+' ' Text
+'relative' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'?' Operator
+' ' Text
+'offset' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'none' Name
+')' Punctuation
+';' Punctuation
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'2' Literal.Number.Integer
+':' Operator
+' ' Text
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'?' Operator
+' ' Text
+'relative' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'?' Operator
+' ' Text
+'offset' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'none' Name
+')' Punctuation
+';' Punctuation
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'3' Literal.Number.Integer
+':' Operator
+' ' Text
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'?' Operator
+' ' Text
+'relative' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'?' Operator
+' ' Text
+'offset' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'none' Name
+')' Punctuation
+';' Punctuation
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'buttons' Name
+'[' Punctuation
+'id' Name
+']' Punctuation
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'horz' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'horz' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'none' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'vert' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'vert' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+' ' Text
+'none' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'vpw' Name
+',' Punctuation
+' ' Text
+'vph' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'x' Name
+',' Punctuation
+'y' Name
+',' Punctuation
+'w' Name
+',' Punctuation
+'h' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Window' Name
+' ' Text
+'parent' Name
+' ' Text
+'=' Operator
+' ' Text
+'control' Name
+'.' Punctuation
+'parent' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'// Fix Anchor\n' Comment.Single
+
+' ' Text
+'x' Name
+' ' Text
+'=' Operator
+' ' Text
+'control' Name
+'.' Punctuation
+'position' Name
+'.' Punctuation
+'x' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'y' Name
+' ' Text
+'=' Operator
+' ' Text
+'control' Name
+'.' Punctuation
+'position' Name
+'.' Punctuation
+'y' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'w' Name
+' ' Text
+'=' Operator
+' ' Text
+'control' Name
+'.' Punctuation
+'size' Name
+'.' Punctuation
+'w' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'h' Name
+' ' Text
+'=' Operator
+' ' Text
+'control' Name
+'.' Punctuation
+'size' Name
+'.' Punctuation
+'h' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'vpw' Name
+' ' Text
+'=' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'clientSize' Name
+'.' Punctuation
+'w' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'vph' Name
+' ' Text
+'=' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'clientSize' Name
+'.' Punctuation
+'h' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'control' Name
+'.' Punctuation
+'nonClient' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'vpw' Name
+' ' Text
+'=' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'size' Name
+'.' Punctuation
+'w' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'vph' Name
+' ' Text
+'=' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'size' Name
+'.' Punctuation
+'h' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Keyword
+'(' Punctuation
+'(' Punctuation
+'(' Punctuation
+'BorderBits' Name
+')' Punctuation
+'control' Name
+'.' Punctuation
+'borderStyle' Name
+')' Punctuation
+'.' Punctuation
+'fixed' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'!' Operator
+'control' Name
+'.' Punctuation
+'dontScrollHorz' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'scrollArea' Name
+'.' Punctuation
+'w' Name
+')' Punctuation
+' ' Text
+'vpw' Name
+' ' Text
+'=' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'scrollArea' Name
+'.' Punctuation
+'w' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'!' Operator
+'control' Name
+'.' Punctuation
+'dontScrollVert' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'scrollArea' Name
+'.' Punctuation
+'h' Name
+')' Punctuation
+' ' Text
+'vph' Name
+' ' Text
+'=' Operator
+' ' Text
+'parent' Name
+'.' Punctuation
+'scrollArea' Name
+'.' Punctuation
+'h' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'offset' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'x' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Name.Function
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'relative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+'x' Name
+' ' Text
+'/' Operator
+' ' Text
+'vpw' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'offset' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'y' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Name.Function
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'relative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+'y' Name
+' ' Text
+'/' Operator
+' ' Text
+'vph' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'offset' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'vpw' Name
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'x' Name
+' ' Text
+'+' Operator
+' ' Text
+'w' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'//else if(anchor.right.type == relative) anchor.right.percent = (float) (x + w) / vpw;\n' Comment.Single
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Name.Function
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'relative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+' ' Text
+'(' Punctuation
+'vpw' Name
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'x' Name
+' ' Text
+'+' Operator
+' ' Text
+'w' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'/' Operator
+' ' Text
+'vpw' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'offset' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'vph' Name
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'y' Name
+' ' Text
+'+' Operator
+' ' Text
+'h' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'//else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (y + h) / vph;\n' Comment.Single
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Name.Function
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'relative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+' ' Text
+'(' Punctuation
+'vph' Name
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'y' Name
+' ' Text
+'+' Operator
+' ' Text
+'h' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'/' Operator
+' ' Text
+'vph' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'!' Operator
+'anchor' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'!' Operator
+'anchor' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'type' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'anchor' Name
+'.' Punctuation
+'horz' Name
+'.' Punctuation
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'x' Name
+' ' Text
+'+' Operator
+' ' Text
+'w' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'vpw' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'//anchor.horz.type = anchor.horz.distance ? offset : none;\n' Comment.Single
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'horz' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'horz' Name
+'.' Punctuation
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+' ' Text
+'(' Punctuation
+'(' Punctuation
+'x' Name
+' ' Text
+'+' Operator
+' ' Text
+'w' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'vpw' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+')' Punctuation
+' ' Text
+'/' Operator
+' ' Text
+'vpw' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'!' Operator
+'anchor' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'!' Operator
+'anchor' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'type' Name
+')' Punctuation
+' \n ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'anchor' Name
+'.' Punctuation
+'vert' Name
+'.' Punctuation
+'distance' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'y' Name
+' ' Text
+'+' Operator
+' ' Text
+'h' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'vph' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'//anchor.vert.type = anchor.vert.distance ? offset : none;\n' Comment.Single
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'vert' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'anchor' Name
+'.' Punctuation
+'vert' Name
+'.' Punctuation
+'percent' Name
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'float' Keyword.Type
+')' Punctuation
+'(' Punctuation
+'(' Punctuation
+'y' Name
+' ' Text
+'+' Operator
+' ' Text
+'h' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'-' Operator
+' ' Text
+'(' Punctuation
+'vph' Name
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+')' Punctuation
+' ' Text
+'/' Operator
+' ' Text
+'vph' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'tempString' Name
+'[' Punctuation
+'1024' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+'"' Literal.String
+'"' Literal.String
+';' Punctuation
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'needClass' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'string' Name
+' ' Text
+'=' Operator
+' ' Text
+'anchor' Name
+'.' Punctuation
+'OnGetString' Name
+'(' Punctuation
+'tempString' Name
+',' Punctuation
+' ' Text
+'null' Name.Builtin
+',' Punctuation
+' ' Text
+'&' Operator
+'needClass' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'contents' Name
+' ' Text
+'=' Operator
+' ' Text
+'string' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'dropMaster' Name
+'.' Punctuation
+'SetData' Name
+'(' Punctuation
+'&' Operator
+'anchor' Name
+',' Punctuation
+' ' Text
+'false' Name.Builtin
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorDropBox' Name
+'.' Punctuation
+'anchorValue' Name
+' ' Text
+'=' Operator
+' ' Text
+'anchor' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+'private' Keyword
+' ' Text
+'class' Keyword
+' ' Text
+'AnchorEditor' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'Window' Name
+'\n' Text
+
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'interim' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'borderStyle' Name
+' ' Text
+'=' Operator
+' ' Text
+'deepContour' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'size' Name
+'.' Punctuation
+'h' Name
+' ' Text
+'=' Operator
+' ' Text
+'92' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'OnKeyDown' Name.Function
+'(' Punctuation
+'Key' Name
+' ' Text
+'key' Name
+',' Punctuation
+' ' Text
+'unichar' Keyword.Type
+' ' Text
+'ch' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'key' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'escape' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'master' Name
+'.' Punctuation
+'OnKeyDown' Name
+'(' Punctuation
+'key' Name
+',' Punctuation
+' ' Text
+'ch' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+'private' Keyword
+' ' Text
+'class' Keyword
+' ' Text
+'AnchorDropBox' Name.Label
+' ' Text
+':' Punctuation
+' ' Text
+'DropBox' Name
+'\n' Text
+
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'Anchor' Name
+' ' Text
+'anchorValue' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Window' Name
+' ' Text
+'control' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Button' Name
+' ' Text
+'relButtons' Name
+'[' Punctuation
+'4' Literal.Number.Integer
+']' Punctuation
+',' Punctuation
+' ' Text
+'buttons' Name
+'[' Punctuation
+'4' Literal.Number.Integer
+']' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'AnchorEditor' Name
+' ' Text
+'anchorEditor' Name
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'master' Name
+' ' Text
+'=' Operator
+' ' Text
+'this' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'autoCreate' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'Window' Name
+' ' Text
+'OnDropDown' Name.Function
+'(' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'int' Keyword.Type
+' ' Text
+'c' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Button' Name
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'anchorEditor' Name
+',' Punctuation
+'\n' Text
+
+' ' Text
+'anchor' Name
+' ' Text
+'=' Operator
+' ' Text
+'Anchor' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'left' Name
+' ' Text
+'=' Operator
+' ' Text
+'28' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'top' Name
+' ' Text
+'=' Operator
+' ' Text
+'28' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'right' Name
+' ' Text
+'=' Operator
+' ' Text
+'28' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'bottom' Name
+' ' Text
+'=' Operator
+' ' Text
+'28' Literal.Number.Integer
+' ' Text
+'}' Punctuation
+',' Punctuation
+'\n' Text
+
+' ' Text
+'inactive' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+',' Punctuation
+' ' Text
+'disabled' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+'\n' Text
+
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'for' Keyword
+'(' Punctuation
+'c' Name
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+' ' Text
+'c' Name
+'<' Operator
+'4' Literal.Number.Integer
+';' Punctuation
+' ' Text
+'c' Name
+'+' Operator
+'+' Operator
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'Button' Name
+' ' Text
+'button' Name
+' ' Text
+'=' Operator
+' ' Text
+'buttons' Name
+'[' Punctuation
+'c' Name
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+'AnchorButton' Name
+' \n ' Text
+'{' Punctuation
+' \n ' Text
+'anchorEditor' Name
+',' Punctuation
+' ' Text
+'id' Name
+' ' Text
+'=' Operator
+' ' Text
+'c' Name
+',' Punctuation
+'\n' Text
+
+' ' Text
+'size' Name
+' ' Text
+'=' Operator
+' ' Text
+'Size' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'(' Punctuation
+'c' Name
+'%' Operator
+'2' Literal.Number.Integer
+')' Punctuation
+'?' Operator
+'10' Literal.Number.Integer
+':' Operator
+'28' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'(' Punctuation
+'c' Name
+'%' Operator
+'2' Literal.Number.Integer
+')' Punctuation
+'?' Operator
+'28' Literal.Number.Integer
+':' Operator
+'10' Literal.Number.Integer
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Button' Name
+' ' Text
+'relButton' Name
+' ' Text
+'=' Operator
+' ' Text
+'relButtons' Name
+'[' Punctuation
+'c' Name
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+'AnchorRelButton' Name
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'anchorEditor' Name
+',' Punctuation
+' ' Text
+'id' Name
+' ' Text
+'=' Operator
+' ' Text
+'c' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'switch' Keyword
+'(' Punctuation
+'c' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'0' Literal.Number.Integer
+':' Operator
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'anchorValue' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'!' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'.' Punctuation
+'left' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'relative' Name
+' ' Text
+'|' Operator
+'|' Operator
+' ' Text
+'anchorValue' Name
+'.' Punctuation
+'horz' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'relButton' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' \n ' Text
+'button' Name
+'.' Punctuation
+'anchor' Name
+' ' Text
+'=' Operator
+' ' Text
+'Anchor' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'left' Name
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'relButton' Name
+'.' Punctuation
+'anchor' Name
+' ' Text
+'=' Operator
+' ' Text
+'Anchor' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'left' Name
+' ' Text
+'=' Operator
+' ' Text
+'5' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'vert' Name
+' ' Text
+'=' Operator
+' ' Text
+'16' Literal.Number.Integer
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'1' Literal.Number.Integer
+':' Operator
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'anchorValue' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'!' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'.' Punctuation
+'top' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'relative' Name
+' ' Text
+'|' Operator
+'|' Operator
+' ' Text
+'anchorValue' Name
+'.' Punctuation
+'vert' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'relButton' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'button' Name
+'.' Punctuation
+'anchor' Name
+' ' Text
+'=' Operator
+' ' Text
+'Anchor' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'top' Name
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'relButton' Name
+'.' Punctuation
+'anchor' Name
+' ' Text
+'=' Operator
+' ' Text
+'Anchor' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'top' Name
+' ' Text
+'=' Operator
+' ' Text
+'5' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'horz' Name
+' ' Text
+'=' Operator
+' ' Text
+'16' Literal.Number.Integer
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'2' Literal.Number.Integer
+':' Operator
+' \n ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'anchorValue' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'!' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'.' Punctuation
+'right' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'relative' Name
+' ' Text
+'|' Operator
+'|' Operator
+' ' Text
+'anchorValue' Name
+'.' Punctuation
+'horz' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'relButton' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' \n ' Text
+'button' Name
+'.' Punctuation
+'anchor' Name
+' ' Text
+'=' Operator
+' ' Text
+'Anchor' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'right' Name
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'relButton' Name
+'.' Punctuation
+'anchor' Name
+' ' Text
+'=' Operator
+' ' Text
+'Anchor' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'right' Name
+' ' Text
+'=' Operator
+' ' Text
+'5' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'vert' Name
+' ' Text
+'=' Operator
+' ' Text
+'16' Literal.Number.Integer
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'case' Keyword
+' ' Text
+'3' Literal.Number.Integer
+':' Operator
+' \n ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'anchorValue' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'!' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'button' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchorValue' Name
+'.' Punctuation
+'bottom' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'relative' Name
+' ' Text
+'|' Operator
+'|' Operator
+' ' Text
+'anchorValue' Name
+'.' Punctuation
+'vert' Name
+'.' Punctuation
+'type' Name
+' ' Text
+'=' Operator
+'=' Operator
+' ' Text
+'middleRelative' Name
+')' Punctuation
+' ' Text
+'relButton' Name
+'.' Punctuation
+'checked' Name
+' ' Text
+'=' Operator
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'button' Name
+'.' Punctuation
+'anchor' Name
+' ' Text
+'=' Operator
+' ' Text
+'Anchor' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'bottom' Name
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'relButton' Name
+'.' Punctuation
+'anchor' Name
+' ' Text
+'=' Operator
+' ' Text
+'Anchor' Name
+' ' Text
+'{' Punctuation
+' ' Text
+'bottom' Name
+' ' Text
+'=' Operator
+' ' Text
+'5' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'horz' Name
+' ' Text
+'=' Operator
+' ' Text
+'16' Literal.Number.Integer
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'break' Keyword
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'anchorEditor' Name
+'.' Punctuation
+'Create' Name
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'anchorEditor' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' \n ' Text
+'void' Keyword.Type
+' ' Text
+'OnCloseDropDown' Name.Function
+'(' Punctuation
+'Window' Name
+' ' Text
+'anchorEditor' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'// TOFIX: Patch for update bug\n' Comment.Single
+
+' ' Text
+'master' Name
+'.' Punctuation
+'Update' Name
+'(' Punctuation
+'null' Name.Builtin
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'anchorEditor' Name
+'.' Punctuation
+'Destroy' Name
+'(' Punctuation
+'0' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'DataBox' Name
+':' Operator
+':' Operator
+'NotifyTextEntry' Name
+'(' Punctuation
+'AnchorDropBox' Name
+' ' Text
+'dropBox' Name
+',' Punctuation
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'string' Name
+',' Punctuation
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'save' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'Anchor' Name
+' ' Text
+'anchor' Name
+' ' Text
+'=' Operator
+' ' Text
+'dropBox' Name
+'.' Punctuation
+'anchorValue' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'Window' Name
+' ' Text
+'control' Name
+' ' Text
+'=' Operator
+' ' Text
+'dropBox' Name
+'.' Punctuation
+'control' Name
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'save' Name
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'if' Keyword
+'(' Punctuation
+'anchor' Name
+'.' Punctuation
+'OnGetDataFromString' Name
+'(' Punctuation
+'string' Name
+')' Punctuation
+')' Punctuation
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'SetData' Name
+'(' Punctuation
+'&' Operator
+'anchor' Name
+',' Punctuation
+' ' Text
+'false' Name.Builtin
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'dropBox' Name
+'.' Punctuation
+'anchorValue' Name
+' ' Text
+'=' Operator
+' ' Text
+'anchor' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'else' Keyword
+'\n' Text
+
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'tempString' Name
+'[' Punctuation
+'1024' Literal.Number.Integer
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+'"' Literal.String
+'"' Literal.String
+';' Punctuation
+'\n' Text
+
+' ' Text
+'bool' Keyword.Type
+' ' Text
+'needClass' Name
+' ' Text
+'=' Operator
+' ' Text
+'false' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'string' Name
+' ' Text
+'=' Operator
+' ' Text
+'anchor' Name
+'.' Punctuation
+'OnGetString' Name
+'(' Punctuation
+'tempString' Name
+',' Punctuation
+' ' Text
+'null' Name.Builtin
+',' Punctuation
+' ' Text
+'&' Operator
+'needClass' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+' ' Text
+'dropBox' Name
+'.' Punctuation
+'contents' Name
+' ' Text
+'=' Operator
+' ' Text
+'string' Name
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+' ' Text
+'return' Keyword
+' ' Text
+'true' Name.Builtin
+';' Punctuation
+'\n' Text
+
+' ' Text
+'}' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n' Text