diff options
| author | Georg Brandl <georg@python.org> | 2021-01-18 21:24:00 +0100 |
|---|---|---|
| committer | Georg Brandl <georg@python.org> | 2021-01-18 22:08:36 +0100 |
| commit | 2a3d3a7d5b9c60dedf6638d876161d9563faebcf (patch) | |
| tree | 809c0b4a686db98f5954afa1944404cd9652c6b2 /tests/lexers/ec | |
| parent | f0445be718da83541ea3401aad882f3937147263 (diff) | |
| download | pygments-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.txt | 2134 | ||||
| -rw-r--r-- | tests/lexers/ec/example2.txt | 7714 |
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 |
