diff options
author | Oleh Prypin <oleh@pryp.in> | 2021-01-20 10:48:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-20 10:48:45 +0100 |
commit | 6f4309217326430145564ae8b1bb393ea684f39f (patch) | |
tree | bf4025a5e709426dc927c4afc4fd2286f8450ed9 /tests/examplefiles/delphi/example.pas.output | |
parent | f0445be718da83541ea3401aad882f3937147263 (diff) | |
download | pygments-git-6f4309217326430145564ae8b1bb393ea684f39f.tar.gz |
Also add auto-updatable output-based tests to examplefiles (#1689)
Co-authored-by: Georg Brandl <georg@python.org>
Diffstat (limited to 'tests/examplefiles/delphi/example.pas.output')
-rw-r--r-- | tests/examplefiles/delphi/example.pas.output | 23410 |
1 files changed, 23410 insertions, 0 deletions
diff --git a/tests/examplefiles/delphi/example.pas.output b/tests/examplefiles/delphi/example.pas.output new file mode 100644 index 00000000..71956db5 --- /dev/null +++ b/tests/examplefiles/delphi/example.pas.output @@ -0,0 +1,23410 @@ +'// vim:ft=pascal' Comment.Single +'\n\n' Text + +'unit' Keyword +' ' Text +'YTools' Name +';' Operator +'\n\n' Text + +'{===============================================================================\n\n cYcnus.YTools 1.0.3 Beta for Delphi 4+\n by licenser and Murphy\n\n ©2000-2003 by cYcnus\n visit www.cYcnus.de\n\n licenser@cYcnus.de (Heinz N. Gies)\n murphy@cYcnus.de (Kornelius Kalnbach)\n \n this unit is published under the terms of the GPL\n\n===============================================================================}' Comment.Multiline +'\n\n' Text + +'interface' Keyword +'\n\n' Text + +'uses' Keyword +'\n ' Text +'Windows' Name +',' Operator +' ' Text +'SysUtils' Name +',' Operator +' ' Text +'Classes' Name +',' Operator +' ' Text +'YTypes' Name +';' Operator +'\n\n' Text + +'const' Keyword +'\n ' Text +'BackSpace' Name +' ' Text +'=' Operator +' ' Text +'#8' Literal.String.Char +';' Operator +'\n ' Text +'Tab' Name +' ' Text +'=' Operator +' ' Text +'#9' Literal.String.Char +';' Operator +'\n ' Text +'LF' Name +' ' Text +'=' Operator +' ' Text +'#10' Literal.String.Char +';' Operator +' ' Text +'//Line Feed' Comment.Single +'\n ' Text +'CR' Name +' ' Text +'=' Operator +' ' Text +'#13' Literal.String.Char +';' Operator +' ' Text +'//Carriage Return' Comment.Single +'\n ' Text +'Space' Name +' ' Text +'=' Operator +' ' Text +'#32' Literal.String.Char +';' Operator +'\n ' Text +'EOLChars' Name +' ' Text +'=' Operator +' ' Text +'[' Punctuation +'CR' Name +',' Operator +' ' Text +'LF' Name +']' Punctuation +';' Operator +'\n' Text + +'{$IFNDEF VER140}' Comment.Multiline +'\n ' Text +'sLineBreak' Name +' ' Text +'=' Operator +' ' Text +'#13' Literal.String.Char +'#10' Literal.String.Char +';' Operator +'\n ' Text +'SwitchChars' Name +' ' Text +'=' Operator +' ' Text +'[' Punctuation +"'" Literal.String +'/' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'-' Literal.String +"'" Literal.String +']' Punctuation +';' Operator +'\n' Text + +'{$ENDIF}' Comment.Multiline +'\n ' Text +'EOL' Name +' ' Text +'=' Operator +' ' Text +'sLineBreak' Name +';' Operator +'\n ' Text +'MaxCard' Name +' ' Text +'=' Operator +' ' Text +'High' Name.Builtin +'(' Punctuation +'Cardinal' Keyword.Type +')' Punctuation +';' Operator +'\n ' Text +'AllChars' Name +' ' Text +'=' Operator +' ' Text +'[' Punctuation +'#0' Literal.String.Char +'.' Operator +'.' Operator +'#255' Literal.String.Char +']' Punctuation +';' Operator +'\n ' Text +'Alphabetical' Name +' ' Text +'=' Operator +' ' Text +'[' Punctuation +"'" Literal.String +'A' Literal.String +"'" Literal.String +'.' Operator +'.' Operator +"'" Literal.String +'Z' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'a' Literal.String +"'" Literal.String +'.' Operator +'.' Operator +"'" Literal.String +'z' Literal.String +"'" Literal.String +']' Punctuation +';' Operator +'\n ' Text +'DecimalChars' Name +' ' Text +'=' Operator +' ' Text +'[' Punctuation +"'" Literal.String +'0' Literal.String +"'" Literal.String +'.' Operator +'.' Operator +"'" Literal.String +'9' Literal.String +"'" Literal.String +']' Punctuation +';' Operator +'\n ' Text +'AlphaNumerical' Name +' ' Text +'=' Operator +' ' Text +'Alphabetical' Name +' ' Text +'+' Operator +' ' Text +'DecimalChars' Name +';' Operator +'\n ' Text +'StrangeChars' Name +' ' Text +'=' Operator +' ' Text +'[' Punctuation +'#0' Literal.String.Char +'.' Operator +'.' Operator +'#31' Literal.String.Char +',' Operator +' ' Text +'#127' Literal.String.Char +',' Operator +' ' Text +'#129' Literal.String.Char +',' Operator +' ' Text +'#141' Literal.String.Char +'.' Operator +'.' Operator +'#144' Literal.String.Char +',' Operator +' ' Text +'#157' Literal.String.Char +',' Operator +' ' Text +'#158' Literal.String.Char +']' Punctuation +';' Operator +'\n\n ' Text +'HexadecimalChars' Name +' ' Text +'=' Operator +' ' Text +'DecimalChars' Name +' ' Text +'+' Operator +' ' Text +'[' Punctuation +"'" Literal.String +'A' Literal.String +"'" Literal.String +'.' Operator +'.' Operator +"'" Literal.String +'F' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'a' Literal.String +"'" Literal.String +'.' Operator +'.' Operator +"'" Literal.String +'f' Literal.String +"'" Literal.String +']' Punctuation +';' Operator +'\n ' Text +'OctalChars' Name +' ' Text +'=' Operator +' ' Text +'[' Punctuation +"'" Literal.String +'0' Literal.String +"'" Literal.String +'.' Operator +'.' Operator +"'" Literal.String +'7' Literal.String +"'" Literal.String +']' Punctuation +';' Operator +'\n ' Text +'BinaryChars' Name +' ' Text +'=' Operator +' ' Text +'[' Punctuation +"'" Literal.String +'0' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'1' Literal.String +"'" Literal.String +']' Punctuation +';' Operator +'\n\n ' Text +'QuoteChars' Name +' ' Text +'=' Operator +' ' Text +'[' Punctuation +"'" Literal.String +"''" Literal.String.Escape +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'"' Literal.String +"'" Literal.String +']' Punctuation +';' Operator +'\n ' Text +'WildCards' Name +' ' Text +'=' Operator +' ' Text +'[' Punctuation +"'" Literal.String +'*' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'?' Literal.String +"'" Literal.String +']' Punctuation +';' Operator +'\n ' Text +'FileNameEnemies' Name +' ' Text +'=' Operator +' ' Text +'WildCards' Name +' ' Text +'+' Operator +' ' Text +'[' Punctuation +"'" Literal.String +'\\' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'/' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +':' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'<' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'>' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'|' Literal.String +"'" Literal.String +']' Punctuation +';' Operator +'\n\n ' Text +'HexChar' Name +':' Operator +' ' Text +'array' Keyword +'[' Punctuation +'THex' Name +']' Punctuation +' ' Text +'of' Keyword +' ' Text +'Char' Keyword.Type +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'\n ' Text +"'" Literal.String +'0' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'1' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'2' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'3' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'4' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'5' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'6' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'7' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'8' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'9' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'A' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'B' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'C' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'D' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'E' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'F' Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n ' Text +'LowerHexChar' Name +':' Operator +' ' Text +'array' Keyword +'[' Punctuation +'THex' Name +']' Punctuation +' ' Text +'of' Keyword +' ' Text +'Char' Keyword.Type +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'\n ' Text +"'" Literal.String +'0' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'1' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'2' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'3' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'4' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'5' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'6' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'7' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'8' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'9' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'a' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'b' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'c' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'d' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'e' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'f' Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n ' Text +'BaseNChar' Name +':' Operator +' ' Text +'array' Keyword +'[' Punctuation +'TBaseN' Name +']' Punctuation +' ' Text +'of' Keyword +' ' Text +'Char' Keyword.Type +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'\n ' Text +"'" Literal.String +'0' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'1' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'2' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'3' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'4' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'5' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'6' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'7' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'8' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'9' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'A' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'B' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'C' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'D' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'E' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'F' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'G' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'H' Literal.String +"'" Literal.String +',' Operator +'\n ' Text +"'" Literal.String +'I' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'J' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'K' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'L' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'M' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'N' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'O' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'P' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'Q' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'R' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'S' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'T' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'U' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'V' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'W' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'X' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'Y' Literal.String +"'" Literal.String +',' Operator +"'" Literal.String +'Z' Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n\n ' Text +'cYcnusOverlayColor' Name +' ' Text +'=' Operator +' ' Text +'$050001' Literal.Number.Hex +';' Operator +'\n\n ' Text +'faFindEveryFile' Name +' ' Text +'=' Operator +' ' Text +'faReadOnly' Name +' ' Text +'+' Operator +' ' Text +'faHidden' Name +' ' Text +'+' Operator +' ' Text +'faSysFile' Name +' ' Text +'+' Operator +' ' Text +'faArchive' Name +';' Operator +'\n\n ' Text +'platWin9x' Name +' ' Text +'=' Operator +' ' Text +'[' Punctuation +'VER_PLATFORM_WIN32s' Name +',' Operator +' ' Text +'VER_PLATFORM_WIN32_WINDOWS' Name +']' Punctuation +';' Operator +'\n\n\n' Text + +'{ Debugging }' Comment.Multiline +'\n' Text + +'procedure' Keyword +' ' Text +'ClearReport' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'ReportName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n' Text + +'procedure' Keyword +' ' Text +'Report' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'ReportName' Name +',' Operator +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n' Text + +'procedure' Keyword +' ' Text +'ReportFmt' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'ReportName' Name +',' Operator +' ' Text +'Fmt' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'const' Keyword +' ' Text +'Args' Name +':' Operator +' ' Text +'array' Keyword +' ' Text +'of' Keyword +' ' Text +'const' Keyword +')' Punctuation +';' Operator +'\n\n' Text + +'{ Params }' Comment.Multiline +'\n' Text + +'procedure' Keyword +' ' Text +'GetParams' Name.Function +'(' Punctuation +'Strings' Name +':' Operator +' ' Text +'TStrings' Name +')' Punctuation +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'GetParams' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ParamNum' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'ParamPrefixNum' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Prefix' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'Param' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'ParamPrefix' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Prefix' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Switch' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Switch' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'const' Keyword +' ' Text +'PrefixChars' Name +':' Operator +' ' Text +'TCharSet' Name +' ' Text +'=' Operator +' ' Text +'SwitchChars' Name +';' Operator +'\n ' Text +'IgnoreCase' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'GetParam' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Prefix' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +' ' Text +'const' Keyword +' ' Text +'Default' Keyword.Pseudo +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'{ Dirs & UserName}' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'GetMyDir' Name.Function +'(' Punctuation +'FullPath' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'False' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'WinDir' Name.Function +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'SysDir' Name.Function +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'UserName' Name.Function +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'{ Strings & Chars}' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'FirstChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'LastChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'CharPos' Name.Function +'(' Punctuation +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Offset' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'CharPos' Name.Function +'(' Punctuation +'C' Name +':' Operator +' ' Text +'TCharSet' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Offset' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'CharPosR' Name.Function +'(' Punctuation +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Offset' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'PosEx' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'SubStr' Name +',' Operator +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Offset' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'PosExText' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'SubStr' Name +',' Operator +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Offset' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'PosExAnsiText' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'SubStr' Name +',' Operator +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Offset' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'UntilChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'UntilChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'TCharSet' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'UntilLastChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +'\n ' Text +'IgnoreNoBrake' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FromChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'FromChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'TCharSet' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'FromLastChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +'\n ' Text +'IgnoreNoBrake' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'False' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'BetweenChars' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Start' Name +',' Operator +' ' Text +'Finish' Name +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +'\n ' Text +'Inclusive' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'False' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'UntilStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'FromStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StringWrap' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Width' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'LineEnd' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +'EOL' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'{ Splitting & Combining }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'Split' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'IgnoreMultiSep' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +';' Operator +'\n ' Text +'MinCount' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'TStrA' Name +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'procedure' Keyword +' ' Text +'Split' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Strings' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +'\n ' Text +'IgnoreMultiSep' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +')' Punctuation +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'Split' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Separators' Name +':' Operator +' ' Text +'TCharSet' Name +';' Operator +'\n ' Text +'IgnoreMultiSep' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +';' Operator +' ' Text +'MinCount' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'TStrA' Name +';' Operator +' ' Text +'overload' Name +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'TileStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'BrakeStart' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'BrakeEnd' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n ' Text +'out' Name +' ' Text +'Left' Name +',' Operator +' ' Text +'Right' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Join' Name.Function +'(' Punctuation +'Strings' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'Join' Name.Function +'(' Punctuation +'StrA' Name +':' Operator +' ' Text +'TStrA' Name +';' Operator +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'MulStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Count' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'{ Strings ausrichten }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'AlignR' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Width' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'Filler' Name +':' Operator +' ' Text +'Char' Keyword.Type +' ' Text +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'MaxStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'MaxLen' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'{ Stringing }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'TrimAll' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ControlChar' Name.Function +'(' Punctuation +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'FriendlyChar' Name.Function +'(' Punctuation +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FriendlyStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'FriendlyStr' Name.Function +'(' Punctuation +'a' Name +':' Operator +' ' Text +'TByteA' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Quote' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Quoter' Name +':' Operator +' ' Text +'Char' Keyword.Type +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'"' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'UnQuote' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'DeQuote' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrNumerus' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Value' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'Singular' Name +',' Operator +' ' Text +'Plural' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n ' Text +'const' Keyword +' ' Text +'Zero' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'0' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'MakeStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Items' Name +':' Operator +' ' Text +'array' Keyword +' ' Text +'of' Keyword +' ' Text +'const' Keyword +';' Operator +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'procedure' Keyword +' ' Text +'ShowText' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Items' Name +':' Operator +' ' Text +'array' Keyword +' ' Text +'of' Keyword +' ' Text +'const' Keyword +';' Operator +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n\n' Text + +'{ Delete }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'DeleteChars' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'DeleteChars' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'C' Name +':' Operator +' ' Text +'TCharSet' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'ExtractChars' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'C' Name +':' Operator +' ' Text +'TCharSet' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'{ Find }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'CharCount' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'CharIn' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'CharIn' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'C' Name +':' Operator +' ' Text +'TCharSet' Name +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrAtPos' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Pos' Name.Builtin +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'Str' Name.Builtin +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'StrAtBegin' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'Str' Name.Builtin +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'StrIn' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'SubStr' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'StrIn' Name.Function +'(' Punctuation +'A' Name +':' Operator +' ' Text +'TStrA' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'StrIn' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'StrIndex' Name.Function +'(' Punctuation +'A' Name +':' Operator +' ' Text +'TStrA' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'StrIndex' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'TextAtPos' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Pos' Name.Builtin +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'TextAtBegin' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'TextIn' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'TextIn' Name.Function +'(' Punctuation +'A' Name +':' Operator +' ' Text +'TStrA' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'TextIn' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'TextIndex' Name.Function +'(' Punctuation +'A' Name +':' Operator +' ' Text +'TStrA' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'TextIndex' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n\n' Text + +'{ Replace }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'ReplaceChars' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Old' Name +',' Operator +' ' Text +'New' Keyword +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'ReplaceChars' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Old' Name +':' Operator +' ' Text +'TCharSet' Name +';' Operator +' ' Text +'New' Keyword +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Replace' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'Old' Name +',' Operator +' ' Text +'New' Keyword +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'{ TStrings }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'SLOfFile' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'TStringList' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'ContainsEmptyLines' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'procedure' Keyword +' ' Text +'DeleteEmptyLines' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +')' Punctuation +';' Operator +'\n' Text + +'procedure' Keyword +' ' Text +'DeleteCommentLines' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'CommentSign' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'//' Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n' Text + +'procedure' Keyword +' ' Text +'WriteSL' Name.Function +'(' Punctuation +'Strings' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'Prefix' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'const' Keyword +' ' Text +'Suffix' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FindLine' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'QuickSortSL' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStringList' Name +')' Punctuation +';' Operator +'\n\n' Text + +'{ TStrA }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'IncStrA' Name.Function +'(' Punctuation +'StrA' Name +':' Operator +' ' Text +'TStrA' Name +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n' Text + +'{ TByteA }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'StrOfByteA' Name.Function +'(' Punctuation +'a' Name +':' Operator +' ' Text +'TByteA' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'ByteAOfStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'TByteA' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'ByteAOfInt' Name.Function +'(' Punctuation +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'TByteA' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'IntOfByteA' Name.Function +'(' Punctuation +'A' Name +':' Operator +' ' Text +'TByteA' Name +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'ByteAOfHex' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Hex' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'TByteA' Name +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'SameByteA' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'A' Name +',' Operator +' ' Text +'B' Name +':' Operator +' ' Text +'TByteA' Name +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'Reverse' Name.Function +'(' Punctuation +'a' Name +':' Operator +' ' Text +'TByteA' Name +')' Punctuation +':' Operator +' ' Text +'TByteA' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'SaveByteA' Name.Function +'(' Punctuation +'Data' Name +':' Operator +' ' Text +'TByteA' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Overwrite' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'LoadByteA' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'TByteA' Name +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Endian' Name.Function +'(' Punctuation +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n' Text + +'{ Files }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'SizeOfFile' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'FileEx' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'AllowFolders' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'False' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'LWPSolve' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Dir' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'LWPSlash' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Dir' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ExtractDrive' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'ExtractPath' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'ExtractPrefix' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'ExtractSuffix' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'IsValidFileName' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'MakeValidFileName' Name.Function +'(' Punctuation +'FileName' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'const' Keyword +' ' Text +'Default' Keyword.Pseudo +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'File' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'{ Converting }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'IsValidInteger' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'IsValidCardinal' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrOfBool' Name.Function +'(' Punctuation +'flag' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'TrueStr' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'True' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'const' Keyword +' ' Text +'FalseStr' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'False' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'StrOfInt' Name.Function +'(' Punctuation +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'CardOfStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'HexOrd' Name.Function +'(' Punctuation +'Hex' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'THex' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'ByteOfHex' Name.Function +'(' Punctuation +'Hex' Name +':' Operator +' ' Text +'THexByteStr' Name +')' Punctuation +':' Operator +' ' Text +'Byte' Keyword.Type +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'DecOfHex' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Hex' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'HexOfByte' Name.Function +'(' Punctuation +'b' Name +':' Operator +' ' Text +'Byte' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'THexByteStr' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'HexOfCard' Name.Function +'(' Punctuation +'i' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'HexOfCard' Name.Function +'(' Punctuation +'i' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +' ' Text +'Digits' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'PascalHexArray' Name.Function +'(' Punctuation +'a' Name +':' Operator +' ' Text +'TByteA' Name +';' Operator +' ' Text +'Name' Keyword.Pseudo +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'HexOfByteA' Name.Function +'(' Punctuation +'a' Name +':' Operator +' ' Text +'TByteA' Name +';' Operator +' ' Text +'Blocks' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'const' Keyword +' ' Text +'Splitter' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'BinOfByteA' Name.Function +'(' Punctuation +'a' Name +':' Operator +' ' Text +'TByteA' Name +';' Operator +' ' Text +'Blocks' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'4' Literal.Number.Integer +';' Operator +'\n ' Text +'const' Keyword +' ' Text +'Splitter' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'CardOfHex' Name.Function +'(' Punctuation +'Hex' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'IntOfBin' Name.Function +'(' Punctuation +'Bin' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'BinOfIntFill' Name.Function +'(' Punctuation +'n' Name +':' Operator +' ' Text +'cardinal' Keyword.Type +';' Operator +' ' Text +'MinCount' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'8' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'BinOfInt' Name.Function +'(' Punctuation +'n' Name +':' Operator +' ' Text +'cardinal' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'BaseNOfInt' Name.Function +'(' Punctuation +'I' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +' ' Text +'B' Name +':' Operator +' ' Text +'TBaseN' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'IntOfBaseN' Name.Function +'(' Punctuation +'V' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'B' Name +':' Operator +' ' Text +'TBaseN' Name +')' Punctuation +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +'\n\n' Text + +'{ Ranges }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'KeepIn' Name.Function +'(' Punctuation +'i' Name +',' Operator +' ' Text +'Bottom' Name +',' Operator +' ' Text +'Top' Name +':' Operator +' ' Text +'Variant' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Variant' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'InRange' Name.Function +'(' Punctuation +'Value' Name +',' Operator +' ' Text +'Bottom' Name +',' Operator +' ' Text +'Top' Name +':' Operator +' ' Text +'Variant' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'InStrictRange' Name.Function +'(' Punctuation +'Value' Name +',' Operator +' ' Text +'Bottom' Name +',' Operator +' ' Text +'Top' Name +':' Operator +' ' Text +'Variant' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'Min' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'A' Name +',' Operator +' ' Text +'B' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'Min' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'A' Name +':' Operator +' ' Text +'TIntA' Name +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'Max' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'A' Name +',' Operator +' ' Text +'B' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'Max' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'A' Name +':' Operator +' ' Text +'TIntA' Name +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'overload' Name +';' Operator +'\n\n' Text + +'const' Keyword +'\n ' Text +'RangesSeparator' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +',' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'RangeInnerSeparator' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'-' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'RangeInfinite' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'*' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'RangeSpecialChars' Name +' ' Text +'=' Operator +' ' Text +'[' Punctuation +'RangesSeparator' Name +',' Operator +' ' Text +'RangeInnerSeparator' Name +',' Operator +' ' Text +'RangeInfinite' Name +']' Punctuation +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'RangesOfStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'TRanges' Name +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'InRanges' Name.Function +'(' Punctuation +'Ranges' Name +':' Operator +' ' Text +'TRanges' Name +';' Operator +' ' Text +'TestValue' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Success' Name.Function +'(' Punctuation +'Res' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'ResultOnSuccess' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'ERROR_SUCCESS' Name +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'Failure' Name.Function +'(' Punctuation +'Res' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'ResultOnSuccess' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'ERROR_SUCCESS' Name +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ExpandString' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'{ Files }' Comment.Multiline +'\n' Text + +'procedure' Keyword +' ' Text +'DeleteFiles' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Mask' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'ScanSubDirs' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +';' Operator +'\n ' Text +'Attributes' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'faFindEveryFile' Name +')' Punctuation +';' Operator +'\n' Text + +'procedure' Keyword +' ' Text +'FileNew' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'DateTimeOfFileTime' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileTime' Name +':' Operator +' ' Text +'TFileTime' Name +')' Punctuation +':' Operator +' ' Text +'TDateTime' Keyword.Type +';' Operator +'\n\n' Text + +'{ FileNames }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'GetFileNew' Name.Function +'(' Punctuation +'FileName' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'NoFloppyDrives' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'{ Finding Files }' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'FindAll' Name.Function +'(' Punctuation +'Strings' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'Mask' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n ' Text +'ScanSubDirs' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +';' Operator +' ' Text +'Attributes' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'faFindEveryFile' Name +';' Operator +'\n ' Text +'FileReturn' Name +':' Operator +' ' Text +'TFileNameFunc' Name +' ' Text +'=' Operator +' ' Text +'nil' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'FindAllFirst' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Mask' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'ScanSubDirs' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +';' Operator +'\n ' Text +'Attributes' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'faFindEveryFile' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FullOSInfo' Name.Function +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'Win32PlatformStr' Name.Function +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'Win9x' Name.Function +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'WinNT' Name.Function +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'Win2000' Name.Function +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'function' Keyword +' ' Text +'WinXP' Name.Function +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n\n' Text + +'var' Keyword +'\n ' Text +'MyDir' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'LastSuccessRes' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n \n' Text + +'{ Backward compatibility }' Comment.Multiline +'\n' Text + +'{$IFNDEF VER130}' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'SameText' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S1' Name +',' Operator +' ' Text +'S2' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'{$ENDIF}' Comment.Multiline +'\n\n' Text + +'implementation' Keyword +'\n' Text + +'{$IFNDEF VER140}' Comment.Multiline +'\n' Text + +'uses' Keyword +' ' Text +'FileCtrl' Name +';' Operator +'\n' Text + +'{$ENDIF}' Comment.Multiline +'\n\n' Text + +'{$IFNDEF VER130}' Comment.Multiline +'\n' Text + +'function' Keyword +' ' Text +'SameText' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S1' Name +',' Operator +' ' Text +'S2' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'CompareText' Name.Builtin +'(' Punctuation +'S1' Name +',' Operator +' ' Text +'S2' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n' Text + +'{$ENDIF}' Comment.Multiline +'\n\n' Text + +'procedure' Keyword +' ' Text +'Report' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'ReportName' Name +',' Operator +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'F' Name +':' Operator +' ' Text +'TextFile' Keyword.Type +';' Operator +'\n ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'FileName' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'MyDir' Name +' ' Text +'+' Operator +' ' Text +'ReportName' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'.rep' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'Assign' Name +'(' Punctuation +'F' Name +',' Operator +' ' Text +'FileName' Name +')' Punctuation +';' Operator +'\n ' Text +'try' Keyword +'\n ' Text +'if' Keyword +' ' Text +'not' Keyword +' ' Text +'FileExists' Name.Builtin +'(' Punctuation +'FileName' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Rewrite' Name.Builtin +'(' Punctuation +'F' Name +')' Punctuation +'\n ' Text +'else' Keyword +'\n ' Text +'Append' Name.Builtin +'(' Punctuation +'F' Name +')' Punctuation +';' Operator +'\n ' Text +'WriteLn' Name.Builtin +'(' Punctuation +'F' Name +',' Operator +' ' Text +'Text' Name +')' Punctuation +';' Operator +'\n ' Text +'finally' Keyword +'\n ' Text +'Close' Name.Builtin +'(' Punctuation +'F' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'ClearReport' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'ReportName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'FileName' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'MyDir' Name +' ' Text +'+' Operator +' ' Text +'ReportName' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'.rep' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'DeleteFile' Name.Builtin +'(' Punctuation +'FileName' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'ReportFmt' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'ReportName' Name +',' Operator +' ' Text +'Fmt' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'const' Keyword +' ' Text +'Args' Name +':' Operator +' ' Text +'array' Keyword +' ' Text +'of' Keyword +' ' Text +'const' Keyword +')' Punctuation +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Report' Name +'(' Punctuation +'ReportName' Name +',' Operator +' ' Text +'Format' Name.Builtin +'(' Punctuation +'Fmt' Name +',' Operator +' ' Text +'Args' Name +'))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'GetParams' Name.Function +'(' Punctuation +'Strings' Name +':' Operator +' ' Text +'TStrings' Name +')' Punctuation +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'P' Name +':' Operator +' ' Text +'PChar' Keyword.Type +';' Operator +'\n ' Text +'Param' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n ' Text +'function' Keyword +' ' Text +'GetParamStr' Name.Function +'(' Punctuation +'var' Keyword +' ' Text +'P' Name +':' Operator +' ' Text +'PChar' Keyword.Type +';' Operator +' ' Text +'var' Keyword +' ' Text +'Param' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n ' Text +'var' Keyword +'\n ' Text +'Quoted' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n ' Text +'begin' Keyword +'\n ' Text +'Param' Name +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n\n ' Text +'repeat' Keyword +'\n ' Text +'while' Keyword +' ' Text +'(' Punctuation +'P' Name +'[' Punctuation +'0' Literal.Number.Integer +']' Punctuation +' ' Text +'<' Operator +'>' Operator +' ' Text +'#0' Literal.String.Char +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'P' Name +'[' Punctuation +'0' Literal.Number.Integer +']' Punctuation +' ' Text +'<' Operator +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'P' Name +')' Punctuation +';' Operator +'\n\n ' Text +'Quoted' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'P' Name +'[' Punctuation +'0' Literal.Number.Integer +']' Punctuation +' ' Text +'<' Operator +'>' Operator +' ' Text +'#0' Literal.String.Char +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'P' Name +'[' Punctuation +'0' Literal.Number.Integer +']' Punctuation +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'"' Literal.String +"'" Literal.String +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Quoted' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'not' Keyword +' ' Text +'Quoted' Name +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'P' Name +')' Punctuation +';' Operator +'\n ' Text +'Continue' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'P' Name +'[' Punctuation +'0' Literal.Number.Integer +']' Punctuation +' ' Text +'<' Operator +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'not' Keyword +' ' Text +'Quoted' Name +' ' Text +'then' Keyword +'\n ' Text +'Break' Keyword +';' Operator +'\n ' Text +'Param' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Param' Name +' ' Text +'+' Operator +' ' Text +'P' Name +'[' Punctuation +'0' Literal.Number.Integer +']' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'P' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'until' Keyword +' ' Text +'(' Punctuation +'Param' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'or' Keyword +' ' Text +'(' Punctuation +'P' Name +'[' Punctuation +'0' Literal.Number.Integer +']' Punctuation +' ' Text +'=' Operator +' ' Text +'#0' Literal.String.Char +')' Punctuation +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Param' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n' Text + +'begin' Keyword +'\n ' Text +'Strings' Name +'.' Operator +'Clear' Name +';' Operator +'\n ' Text +'P' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'GetCommandLine' Name +';' Operator +'\n ' Text +'GetParamStr' Name +'(' Punctuation +'P' Name +',' Operator +' ' Text +'Param' Name +')' Punctuation +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'GetParamStr' Name +'(' Punctuation +'P' Name +',' Operator +' ' Text +'Param' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'Strings' Name +'.' Operator +'Add' Name +'(' Punctuation +'Param' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'GetParams' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'SL' Name +':' Operator +' ' Text +'TStringList' Name +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'SL' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'TStringList' Name +'.' Operator +'Create' Name +';' Operator +'\n ' Text +'GetParams' Name +'(' Punctuation +'SL' Name +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Join' Name +'(' Punctuation +'SL' Name +',' Operator +' ' Text +'Separator' Name +')' Punctuation +';' Operator +'\n ' Text +'SL' Name +'.' Operator +'Free' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Switch' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Switch' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'const' Keyword +' ' Text +'PrefixChars' Name +':' Operator +' ' Text +'TCharSet' Name +' ' Text +'=' Operator +' ' Text +'SwitchChars' Name +';' Operator +'\n ' Text +'IgnoreCase' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'//= SysUtils.FindCmdLineSwitch' Comment.Single +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n ' Text +'s' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'True' Keyword +';' Operator +'\n\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'ParamCount' Name.Builtin +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'s' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'ParamStr' Name.Builtin +'(' Punctuation +'i' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'s' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'s' Name +'[' Punctuation +'1' Literal.Number.Integer +']' Punctuation +' ' Text +'in' Keyword +' ' Text +'PrefixChars' Name +')' Punctuation +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +"//i know that always s <> '', but this is saver" Comment.Single +'\n ' Text +'s' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'s' Name +',' Operator +' ' Text +'2' Literal.Number.Integer +',' Operator +' ' Text +'MaxInt' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'s' Name +' ' Text +'=' Operator +' ' Text +'Switch' Name +')' Punctuation +' ' Text +'or' Keyword +' ' Text +'(' Punctuation +'IgnoreCase' Name +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'0' Literal.Number.Integer +'=' Operator +'AnsiCompareText' Name.Builtin +'(' Punctuation +'s' Name +',' Operator +' ' Text +'Switch' Name +')))' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ParamNum' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'for' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'ParamCount' Name.Builtin +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'0' Literal.Number.Integer +'=' Operator +'AnsiCompareText' Name.Builtin +'(' Punctuation +'ParamStr' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +',' Operator +' ' Text +'S' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ParamPrefixNum' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Prefix' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Len' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Len' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Prefix' Name +')' Punctuation +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'ParamCount' Name.Builtin +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'0' Literal.Number.Integer +'=' Operator +'AnsiCompareText' Name.Builtin +'(' Punctuation +'Copy' Name.Builtin +'(' Punctuation +'ParamStr' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'Len' Name +')' Punctuation +',' Operator +' ' Text +'Prefix' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Param' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'ParamNum' Name +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ParamPrefix' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Prefix' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'ParamPrefixNum' Name +'(' Punctuation +'Prefix' Name +')' Punctuation +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'GetParam' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Prefix' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +' ' Text +'const' Keyword +' ' Text +'Default' Keyword.Pseudo +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Default' Keyword.Pseudo +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'Prefix' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'ParamStr' Name.Builtin +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'Exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'ParamPrefixNum' Name +'(' Punctuation +'Prefix' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'i' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'ParamStr' Name.Builtin +'(' Punctuation +'i' Name +')' Punctuation +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Prefix' Name +')' Punctuation +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'MaxInt' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'GetMyDir' Name.Function +'(' Punctuation +'FullPath' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'False' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Buffer' Name +':' Operator +' ' Text +'array' Keyword +'[' Punctuation +'0' Literal.Number.Integer +'.' Operator +'.' Operator +'260' Literal.Number.Integer +']' Punctuation +' ' Text +'of' Keyword +' ' Text +'Char' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'SetString' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'Buffer' Name +',' Operator +' ' Text +'GetModuleFileName' Name.Builtin +'(' Punctuation +'0' Literal.Number.Integer +',' Operator +' ' Text +'Buffer' Name +',' Operator +' ' Text +'SizeOf' Name.Builtin +'(' Punctuation +'Buffer' Name +')))' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'FullPath' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'GetFileNew' Name +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'ExtractPath' Name +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'WinDir' Name.Function +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Res' Name +':' Operator +' ' Text +'PChar' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'GetMem' Name.Builtin +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'MAX_PATH' Name +')' Punctuation +';' Operator +'\n ' Text +'GetWindowsDirectory' Name +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'MAX_PATH' Name +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Res' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'FreeMem' Name.Builtin +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'MAX_PATH' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'SysDir' Name.Function +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Res' Name +':' Operator +' ' Text +'PChar' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'GetMem' Name.Builtin +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'MAX_PATH' Name +')' Punctuation +';' Operator +'\n ' Text +'GetSystemDirectory' Name +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'MAX_PATH' Name +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Res' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'FreeMem' Name.Builtin +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'MAX_PATH' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'UserName' Name.Function +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Len' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +'\n ' Text +'Res' Name +':' Operator +' ' Text +'PChar' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'GetMem' Name.Builtin +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'MAX_PATH' Name +')' Punctuation +';' Operator +'\n ' Text +'Len' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'MAX_PATH' Name +';' Operator +'\n ' Text +'GetUserName' Name +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'Len' Name +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Res' Name +';' Operator +'\n ' Text +'FreeMem' Name.Builtin +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'MAX_PATH' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FirstChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'s' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'#0' Literal.String.Char +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'s' Name +'[' Punctuation +'1' Literal.Number.Integer +']' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'LastChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'s' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'#0' Literal.String.Char +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'s' Name +'[' Punctuation +'Length' Name.Builtin +'(' Punctuation +'s' Name +')]' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'CharPos' Name.Function +'(' Punctuation +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Offset' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'MaxPosToSearch' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Offset' Name +';' Operator +'\n ' Text +'MaxPosToSearch' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +';' Operator +'\n\n ' Text +'while' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'<' Operator +'=' Operator +' ' Text +'MaxPosToSearch' Name +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +']' Punctuation +' ' Text +'=' Operator +' ' Text +'C' Name +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'CharPos' Name.Function +'(' Punctuation +'C' Name +':' Operator +' ' Text +'TCharSet' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Offset' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'MaxPosToSearch' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Offset' Name +';' Operator +'\n ' Text +'MaxPosToSearch' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +';' Operator +'\n\n ' Text +'while' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'<' Operator +'=' Operator +' ' Text +'MaxPosToSearch' Name +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +']' Punctuation +' ' Text +'in' Keyword +' ' Text +'C' Name +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'CharPosR' Name.Function +'(' Punctuation +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Offset' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Offset' Name +' ' Text +'<' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'-' Operator +' ' Text +'Offset' Name +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Offset' Name +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'>' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +';' Operator +'\n\n ' Text +'while' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +']' Punctuation +' ' Text +'=' Operator +' ' Text +'C' Name +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'Dec' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'PosEx' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'SubStr' Name +',' Operator +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Offset' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'MaxPosToSearch' Name +',' Operator +' ' Text +'LenSubStr' Name +',' Operator +' ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'SubStr' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'Exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'Offset' Name +' ' Text +'<' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Offset' Name +';' Operator +'\n\n ' Text +'LenSubStr' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'SubStr' Name +')' Punctuation +';' Operator +'\n ' Text +'MaxPosToSearch' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'LenSubStr' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n\n ' Text +'while' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'<' Operator +'=' Operator +' ' Text +'MaxPosToSearch' Name +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +']' Punctuation +' ' Text +'=' Operator +' ' Text +'SubStr' Name +'[' Punctuation +'1' Literal.Number.Integer +']' Punctuation +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n\n ' Text +'while' Keyword +' ' Text +'(' Punctuation +'i' Name +' ' Text +'<' Operator +' ' Text +'LenSubStr' Name +')' Punctuation +'\n ' Text +'and' Keyword +' ' Text +'(' Punctuation +'S' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'i' Name +']' Punctuation +' ' Text +'=' Operator +' ' Text +'SubStr' Name +'[' Punctuation +'i' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +'])' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'i' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'LenSubStr' Name +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'PosExText' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'SubStr' Name +',' Operator +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Offset' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'MaxPosToSearch' Name +',' Operator +' ' Text +'LenSubStr' Name +',' Operator +' ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n ' Text +'function' Keyword +' ' Text +'SameChar' Name.Function +'(' Punctuation +'a' Name +',' Operator +' ' Text +'b' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'UpCase' Name.Builtin +'(' Punctuation +'a' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'UpCase' Name.Builtin +'(' Punctuation +'b' Name +')' Punctuation +'\n ' Text +'end' Keyword +';' Operator +'\n\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'SubStr' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'Exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'Offset' Name +' ' Text +'<' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Offset' Name +';' Operator +'\n\n ' Text +'LenSubStr' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'SubStr' Name +')' Punctuation +';' Operator +'\n ' Text +'MaxPosToSearch' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'LenSubStr' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n\n ' Text +'while' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'<' Operator +'=' Operator +' ' Text +'MaxPosToSearch' Name +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'SameChar' Name +'(' Punctuation +'S' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +']' Punctuation +',' Operator +' ' Text +'SubStr' Name +'[' Punctuation +'1' Literal.Number.Integer +'])' Punctuation +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n\n ' Text +'while' Keyword +' ' Text +'(' Punctuation +'i' Name +' ' Text +'<' Operator +' ' Text +'LenSubStr' Name +')' Punctuation +'\n ' Text +'and' Keyword +' ' Text +'(' Punctuation +'SameChar' Name +'(' Punctuation +'S' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'i' Name +']' Punctuation +',' Operator +' ' Text +'SubStr' Name +'[' Punctuation +'i' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +']))' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'i' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'LenSubStr' Name +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'PosExAnsiText' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'SubStr' Name +',' Operator +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Offset' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'MaxPosToSearch' Name +',' Operator +' ' Text +'LenSubStr' Name +',' Operator +' ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n ' Text +'function' Keyword +' ' Text +'SameChar' Name.Function +'(' Punctuation +'a' Name +',' Operator +' ' Text +'b' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'CharLower' Name +'(' Punctuation +'PChar' Keyword.Type +'(' Punctuation +'a' Name +'))' Punctuation +' ' Text +'=' Operator +' ' Text +'CharLower' Name +'(' Punctuation +'PChar' Keyword.Type +'(' Punctuation +'b' Name +'))' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'SubStr' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'Exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'Offset' Name +' ' Text +'<' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Offset' Name +';' Operator +'\n\n ' Text +'LenSubStr' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'SubStr' Name +')' Punctuation +';' Operator +'\n ' Text +'MaxPosToSearch' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'LenSubStr' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n\n ' Text +'while' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'<' Operator +'=' Operator +' ' Text +'MaxPosToSearch' Name +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'SameChar' Name +'(' Punctuation +'S' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +']' Punctuation +',' Operator +' ' Text +'SubStr' Name +'[' Punctuation +'1' Literal.Number.Integer +'])' Punctuation +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n\n ' Text +'while' Keyword +' ' Text +'(' Punctuation +'i' Name +' ' Text +'<' Operator +' ' Text +'LenSubStr' Name +')' Punctuation +'\n ' Text +'and' Keyword +' ' Text +'(' Punctuation +'SameChar' Name +'(' Punctuation +'S' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'i' Name +']' Punctuation +',' Operator +' ' Text +'SubStr' Name +'[' Punctuation +'i' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +']))' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'i' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'LenSubStr' Name +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'UntilChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'p' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'CharPos' Name +'(' Punctuation +'Brake' Name +',' Operator +' ' Text +'S' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'p' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'p' Name +' ' Text +'-' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'S' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'UntilChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'TCharSet' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'p' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'CharPos' Name +'(' Punctuation +'Brake' Name +',' Operator +' ' Text +'S' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'p' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'p' Name +' ' Text +'-' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'S' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'UntilLastChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +'\n ' Text +'IgnoreNoBrake' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'p' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'CharPosR' Name +'(' Punctuation +'Brake' Name +',' Operator +' ' Text +'S' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'p' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'p' Name +' ' Text +'-' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +'\n ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'IgnoreNoBrake' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'S' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FromChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'p' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'CharPos' Name +'(' Punctuation +'Brake' Name +',' Operator +' ' Text +'S' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'p' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'p' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'p' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FromChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'TCharSet' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'p' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'CharPos' Name +'(' Punctuation +'Brake' Name +',' Operator +' ' Text +'S' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'p' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'p' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'p' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FromLastChar' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +'\n ' Text +'IgnoreNoBrake' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'False' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'p' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'CharPosR' Name +'(' Punctuation +'Brake' Name +',' Operator +' ' Text +'S' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'p' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'p' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'p' Name +')' Punctuation +'\n ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'IgnoreNoBrake' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'S' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'BetweenChars' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Start' Name +',' Operator +' ' Text +'Finish' Name +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +'\n ' Text +'Inclusive' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'False' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'p' Name +',' Operator +' ' Text +'fin' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'CharPos' Name +'(' Punctuation +'Start' Name +',' Operator +' ' Text +'S' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'p' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'fin' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'CharPos' Name +'(' Punctuation +'Finish' Name +',' Operator +' ' Text +'S' Name +',' Operator +' ' Text +'p' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'fin' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'not' Keyword +' ' Text +'Inclusive' Name +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'p' Name +')' Punctuation +';' Operator +'\n ' Text +'Dec' Name.Builtin +'(' Punctuation +'fin' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'p' Name +',' Operator +' ' Text +'fin' Name +' ' Text +'-' Operator +' ' Text +'p' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'UntilStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'p' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Brake' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'UntilChar' Name +'(' Punctuation +'S' Name +',' Operator +' ' Text +'Brake' Name +'[' Punctuation +'1' Literal.Number.Integer +'])' Punctuation +';' Operator +'\n ' Text +'Exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'PosEx' Name +'(' Punctuation +'Brake' Name +',' Operator +' ' Text +'S' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'p' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'p' Name +' ' Text +'-' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'S' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FromStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Brake' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'p' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Brake' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'FromChar' Name +'(' Punctuation +'S' Name +',' Operator +' ' Text +'Brake' Name +'[' Punctuation +'1' Literal.Number.Integer +'])' Punctuation +';' Operator +'\n ' Text +'Exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'PosEx' Name +'(' Punctuation +'Brake' Name +',' Operator +' ' Text +'s' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'p' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'p' Name +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Brake' Name +'))' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'p' Name +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'p' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StringWrap' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Width' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'LineEnd' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +'EOL' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'S' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'or' Keyword +' ' Text +'(' Punctuation +'Width' Name +' ' Text +'<' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'True' Keyword +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'i' Name +',' Operator +' ' Text +'Width' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'i' Name +',' Operator +' ' Text +'Width' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'i' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'LineEnd' Name +'\n ' Text +'else' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Split' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'IgnoreMultiSep' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +';' Operator +'\n ' Text +'MinCount' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'TStrA' Name +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'p' Name +',' Operator +' ' Text +'fin' Name +',' Operator +' ' Text +'SepLen' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n ' Text +'procedure' Keyword +' ' Text +'Add' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'IgnoreMultiSep' Name +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'S' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +'[' Punctuation +'High' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')]' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'S' Name +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +' ' Text +'<' Operator +' ' Text +'MinCount' Name +' ' Text +'then' Keyword +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'MinCount' Name +')' Punctuation +';' Operator +'\n ' Text +'Exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'nil' Keyword +';' Operator +'\n ' Text +'SepLen' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Separator' Name +')' Punctuation +';' Operator +'\n\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'fin' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'PosEx' Name +'(' Punctuation +'Separator' Name +',' Operator +' ' Text +'S' Name +')' Punctuation +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'fin' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Add' Name +'(' Punctuation +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'p' Name +',' Operator +' ' Text +'fin' Name +' ' Text +'-' Operator +' ' Text +'p' Name +'))' Punctuation +';' Operator +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'fin' Name +' ' Text +'+' Operator +' ' Text +'SepLen' Name +';' Operator +'\n ' Text +'fin' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'PosEx' Name +'(' Punctuation +'Separator' Name +',' Operator +' ' Text +'S' Name +',' Operator +' ' Text +'p' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'Add' Name +'(' Punctuation +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'p' Name +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'p' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +'))' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +' ' Text +'<' Operator +' ' Text +'MinCount' Name +' ' Text +'then' Keyword +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'MinCount' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'Split' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Strings' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +'\n ' Text +'IgnoreMultiSep' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +')' Punctuation +';' Operator +' \n' Text + +'var' Keyword +'\n ' Text +'p' Name +',' Operator +' ' Text +'fin' Name +',' Operator +' ' Text +'SepLen' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n ' Text +'procedure' Keyword +' ' Text +'Add' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'IgnoreMultiSep' Name +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'S' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'Strings' Name +'.' Operator +'Add' Name +'(' Punctuation +'S' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'Strings' Name +'.' Operator +'BeginUpdate' Name +';' Operator +'\n ' Text +'SepLen' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Separator' Name +')' Punctuation +';' Operator +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'fin' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'PosEx' Name +'(' Punctuation +'Separator' Name +',' Operator +' ' Text +'S' Name +')' Punctuation +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'fin' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Add' Name +'(' Punctuation +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'p' Name +',' Operator +' ' Text +'fin' Name +' ' Text +'-' Operator +' ' Text +'p' Name +'))' Punctuation +';' Operator +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'fin' Name +' ' Text +'+' Operator +' ' Text +'SepLen' Name +';' Operator +'\n ' Text +'fin' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'PosEx' Name +'(' Punctuation +'Separator' Name +',' Operator +' ' Text +'S' Name +',' Operator +' ' Text +'p' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'Add' Name +'(' Punctuation +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'p' Name +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'p' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +'))' Punctuation +';' Operator +'\n ' Text +'Strings' Name +'.' Operator +'EndUpdate' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Split' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Separators' Name +':' Operator +' ' Text +'TCharSet' Name +';' Operator +'\n ' Text +'IgnoreMultiSep' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +';' Operator +' ' Text +'MinCount' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'TStrA' Name +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'p' Name +',' Operator +' ' Text +'fin' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n ' Text +'procedure' Keyword +' ' Text +'Add' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'IgnoreMultiSep' Name +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'S' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +'[' Punctuation +'High' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')]' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'S' Name +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +' ' Text +'<' Operator +' ' Text +'MinCount' Name +' ' Text +'then' Keyword +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'MinCount' Name +')' Punctuation +';' Operator +'\n ' Text +'Exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'nil' Keyword +';' Operator +'\n\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'fin' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'CharPos' Name +'(' Punctuation +'Separators' Name +',' Operator +' ' Text +'S' Name +')' Punctuation +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'fin' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Add' Name +'(' Punctuation +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'p' Name +',' Operator +' ' Text +'fin' Name +' ' Text +'-' Operator +' ' Text +'p' Name +'))' Punctuation +';' Operator +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'fin' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'fin' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'CharPos' Name +'(' Punctuation +'Separators' Name +',' Operator +' ' Text +'S' Name +',' Operator +' ' Text +'p' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'Add' Name +'(' Punctuation +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'p' Name +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'p' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +'))' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +' ' Text +'<' Operator +' ' Text +'MinCount' Name +' ' Text +'then' Keyword +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'MinCount' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'TileStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'BrakeStart' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'BrakeEnd' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n ' Text +'out' Name +' ' Text +'Left' Name +',' Operator +' ' Text +'Right' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Left' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'BrakeStart' Name +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'Right' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'BrakeEnd' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'MaxInt' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Join' Name.Function +'(' Punctuation +'Strings' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +',' Operator +' ' Text +'imax' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'imax' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Strings' Name +'.' Operator +'Count' Name +'-' Operator +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'imax' Name +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Strings' Name +'[' Punctuation +'i' Name +']' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'imax' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Separator' Name +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Join' Name.Function +'(' Punctuation +'StrA' Name +':' Operator +' ' Text +'TStrA' Name +';' Operator +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'overload' Name +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'StrA' Name +')' Punctuation +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'StrA' Name +'[' Punctuation +'i' Name +']' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'High' Name.Builtin +'(' Punctuation +'StrA' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Separator' Name +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'MulStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Count' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'P' Name +':' Operator +' ' Text +'PChar' Keyword.Type +';' Operator +'\n ' Text +'Len' Name +',' Operator +' ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Count' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'Len' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +';' Operator +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'Len' Name +' ' Text +'*' Operator +' ' Text +'Count' Name +')' Punctuation +';' Operator +'\n\n ' Text +'P' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Pointer' Keyword.Type +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'Count' Name +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Move' Name.Builtin +'(' Punctuation +'Pointer' Keyword.Type +'(' Punctuation +'S' Name +')' Punctuation +'^' Operator +',' Operator +' ' Text +'P' Name +'^' Operator +',' Operator +' ' Text +'Len' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'P' Name +',' Operator +' ' Text +'Len' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'AlignR' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Width' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'Filler' Name +':' Operator +' ' Text +'Char' Keyword.Type +' ' Text +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'MulStr' Name +'(' Punctuation +'Filler' Name +',' Operator +' ' Text +'Width' Name +' ' Text +'-' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +'))' Punctuation +' ' Text +'+' Operator +' ' Text +'S' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'MaxStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'MaxLen' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Len' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Len' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Len' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'MaxLen' Name +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'S' Name +';' Operator +'\n ' Text +'Exit' Keyword +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'MaxLen' Name +' ' Text +'-' Operator +' ' Text +'3' Literal.Number.Integer +')' Punctuation +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'...' Literal.String +"'" Literal.String +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'TrimAll' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'>' Operator +' ' Text +'#32' Literal.String.Char +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'S' Name +'[' Punctuation +'i' Name +']' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ControlChar' Name.Function +'(' Punctuation +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'C' Name +' ' Text +'in' Keyword +' ' Text +'StrangeChars' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FriendlyChar' Name.Function +'(' Punctuation +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Char' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'case' Keyword +' ' Text +'C' Name +' ' Text +'of' Keyword +'\n ' Text +'#0' Literal.String.Char +':' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +'.' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'#1' Literal.String.Char +'.' Operator +'.' Operator +'#31' Literal.String.Char +':' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +'?' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'#255' Literal.String.Char +':' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +'#' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'C' Name +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FriendlyStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +'))' Punctuation +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'FriendlyChar' Name +'(' Punctuation +'S' Name +'[' Punctuation +'i' Name +'])' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FriendlyStr' Name.Function +'(' Punctuation +'a' Name +':' Operator +' ' Text +'TByteA' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'a' Name +'))' Punctuation +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'a' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +'[' Punctuation +'i' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +']' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'FriendlyChar' Name +'(' Punctuation +'Char' Keyword.Type +'(' Punctuation +'a' Name +'[' Punctuation +'i' Name +']))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Quote' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Quoter' Name +':' Operator +' ' Text +'Char' Keyword.Type +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'"' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'S' Name +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'FirstChar' Name +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'<' Operator +'>' Operator +' ' Text +'Quoter' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Quoter' Name +' ' Text +'+' Operator +' ' Text +'Result' Name.Builtin.Pseudo +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'LastChar' Name +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'<' Operator +'>' Operator +' ' Text +'Quoter' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Quoter' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'DeQuote' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'>' Operator +' ' Text +'2' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'2' Literal.Number.Integer +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'2' Literal.Number.Integer +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'UnQuote' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Start' Name +',' Operator +' ' Text +'Len' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Start' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'Len' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'S' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'S' Name +'[' Punctuation +'1' Literal.Number.Integer +']' Punctuation +' ' Text +'in' Keyword +' ' Text +'([' Punctuation +'#0' Literal.String.Char +'.' Operator +'.' Operator +'#32' Literal.String.Char +']' Punctuation +' ' Text +'+' Operator +' ' Text +'QuoteChars' Name +'))' Punctuation +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'LastChar' Name +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'S' Name +'[' Punctuation +'1' Literal.Number.Integer +'])' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Dec' Name.Builtin +'(' Punctuation +'Len' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'Start' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'Start' Name +',' Operator +' ' Text +'Len' Name +' ' Text +'-' Operator +' ' Text +'Start' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrNumerus' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Value' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'Singular' Name +',' Operator +' ' Text +'Plural' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n ' Text +'const' Keyword +' ' Text +'Zero' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'0' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Abs' Name.Builtin +'(' Punctuation +'Value' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'IntToStr' Name.Builtin +'(' Punctuation +'Value' Name +')' Punctuation +' ' Text +'+' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +' ' Text +'+' Operator +' ' Text +'Singular' Name +'\n ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'Value' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Zero' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +' ' Text +'+' Operator +' ' Text +'Plural' Name +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'IntToStr' Name.Builtin +'(' Punctuation +'Value' Name +')' Punctuation +' ' Text +'+' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +' ' Text +'+' Operator +' ' Text +'Plural' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'MakeStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Items' Name +':' Operator +' ' Text +'array' Keyword +' ' Text +'of' Keyword +' ' Text +'const' Keyword +';' Operator +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'const' Keyword +'\n ' Text +'BoolStrings' Name +':' Operator +' ' Text +'array' Keyword +'[' Punctuation +'Boolean' Keyword.Type +']' Punctuation +' ' Text +'of' Keyword +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +'(' Punctuation +"'" Literal.String +'False' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'True' Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n ' Text +'function' Keyword +' ' Text +'StrOfP' Name.Function +'(' Punctuation +'P' Name +':' Operator +' ' Text +'Pointer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'P' Name +' ' Text +'=' Operator +' ' Text +'nil' Keyword +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +'[nil]' Literal.String +"'" Literal.String +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +'[' Literal.String +"'" Literal.String +' ' Text +'+' Operator +' ' Text +'IntToStr' Name.Builtin +'(' Punctuation +'Cardinal' Keyword.Type +'(' Punctuation +'P' Name +'))' Punctuation +' ' Text +'+' Operator +' ' Text +"'" Literal.String +']' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'procedure' Keyword +' ' Text +'Add' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'s' Name +' ' Text +'+' Operator +' ' Text +'Separator' Name +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'Items' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'with' Keyword +' ' Text +'Items' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'case' Keyword +' ' Text +'VType' Name +' ' Text +'of' Keyword +'\n ' Text +'vtString' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'VString' Name +'^' Operator +')' Punctuation +';' Operator +'\n ' Text +'vtInteger' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'IntToStr' Name.Builtin +'(' Punctuation +'VInteger' Name +'))' Punctuation +';' Operator +'\n ' Text +'vtBoolean' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'BoolStrings' Name +'[' Punctuation +'VBoolean' Name +'])' Punctuation +';' Operator +'\n ' Text +'vtChar' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'VChar' Name +')' Punctuation +';' Operator +'\n ' Text +'vtPChar' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'VPChar' Name +')' Punctuation +';' Operator +'\n ' Text +'vtExtended' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'FloatToStr' Name.Builtin +'(' Punctuation +'VExtended' Name +'^' Operator +'))' Punctuation +';' Operator +'\n ' Text +'vtObject' Name +':' Operator +' ' Text +'if' Keyword +' ' Text +'VObject' Name +' ' Text +'is' Keyword +' ' Text +'TComponent' Name +' ' Text +'then' Keyword +'\n ' Text +'Add' Name +'(' Punctuation +'TComponent' Name +'(' Punctuation +'VObject' Name +')' Punctuation +'.' Operator +'Name' Name +')' Punctuation +'\n ' Text +'else' Keyword +'\n ' Text +'Add' Name +'(' Punctuation +'VObject' Name +'.' Operator +'ClassName' Name +')' Punctuation +';' Operator +'\n ' Text +'vtClass' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'VClass' Name +'.' Operator +'ClassName' Name +')' Punctuation +';' Operator +'\n ' Text +'vtAnsiString' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'string' Keyword +'(' Punctuation +'VAnsiString' Name +'))' Punctuation +';' Operator +'\n ' Text +'vtCurrency' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'CurrToStr' Name.Builtin +'(' Punctuation +'VCurrency' Name +'^' Operator +'))' Punctuation +';' Operator +'\n ' Text +'vtInt64' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'IntToStr' Name.Builtin +'(' Punctuation +'VInt64' Name +'^' Operator +'))' Punctuation +';' Operator +'\n ' Text +'vtVariant' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'string' Keyword +'(' Punctuation +'VVariant' Name +'^' Operator +'))' Punctuation +';' Operator +'\n\n ' Text +'vtWideChar' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'VWideChar' Name +')' Punctuation +';' Operator +'\n ' Text +'vtPWideChar' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'VPWideChar' Name +')' Punctuation +';' Operator +'\n ' Text +'vtInterface' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'StrOfP' Name +'(' Punctuation +'VInterface' Name +'))' Punctuation +';' Operator +'\n ' Text +'vtPointer' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'StrOfP' Name +'(' Punctuation +'VPointer' Name +'))' Punctuation +';' Operator +'\n ' Text +'vtWideString' Name +':' Operator +' ' Text +'Add' Name +'(' Punctuation +'WideString' Keyword.Type +'(' Punctuation +'VWideString' Name +'))' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'result' Name.Builtin.Pseudo +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +' ' Text +'-' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Separator' Name +'))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'ShowText' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Items' Name +':' Operator +' ' Text +'array' Keyword +' ' Text +'of' Keyword +' ' Text +'const' Keyword +';' Operator +' ' Text +'Separator' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Text' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'MakeStr' Name +'(' Punctuation +'Items' Name +',' Operator +' ' Text +'Separator' Name +')' Punctuation +';' Operator +'\n\n ' Text +'MessageBox' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Operator +' ' Text +'PChar' Keyword.Type +'(' Punctuation +'Text' Name +')' Punctuation +',' Operator +' ' Text +"'" Literal.String +'Info' Literal.String +"'" Literal.String +',' Operator +' ' Text +'MB_OK' Name +' ' Text +'and' Keyword +' ' Text +'MB_APPLMODAL' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'DeleteChars' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'<' Operator +'>' Operator +' ' Text +'C' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'S' Name +'[' Punctuation +'i' Name +']' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'DeleteChars' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'C' Name +':' Operator +' ' Text +'TCharSet' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'not' Keyword +' ' Text +'(' Punctuation +'S' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'in' Keyword +' ' Text +'C' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'S' Name +'[' Punctuation +'i' Name +']' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ExtractChars' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'C' Name +':' Operator +' ' Text +'TCharSet' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'in' Keyword +' ' Text +'C' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'S' Name +'[' Punctuation +'i' Name +']' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'CharCount' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'=' Operator +' ' Text +'C' Name +' ' Text +'then' Keyword +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrAtPos' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Pos' Name.Builtin +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'Str' Name.Builtin +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'Str' Name.Builtin +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'Str' Name.Builtin +' ' Text +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'Pos' Name.Builtin +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Str' Name.Builtin +')))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'TextAtPos' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Pos' Name.Builtin +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'Text' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'SameText' Name.Builtin +'(' Punctuation +'Text' Name +',' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'Pos' Name.Builtin +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Text' Name +')))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrAtBegin' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'Str' Name.Builtin +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'StrAtPos' Name +'(' Punctuation +'S' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'Str' Name.Builtin +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'TextAtBegin' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'TextAtPos' Name +'(' Punctuation +'S' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'Text' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'CharIn' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'C' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'True' Keyword +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'=' Operator +' ' Text +'C' Name +' ' Text +'then' Keyword +' ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'CharIn' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'C' Name +':' Operator +' ' Text +'TCharSet' Name +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'S' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'in' Keyword +' ' Text +'C' Name +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrIn' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'SubStr' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'PosEx' Name +'(' Punctuation +'SubStr' Name +',' Operator +' ' Text +'S' Name +')' Punctuation +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrIn' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'SL' Name +'.' Operator +'Count' Name +'-' Operator +'1' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'S' Name +' ' Text +'=' Operator +' ' Text +'SL' Name +'[' Punctuation +'i' Name +'])' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrIn' Name.Function +'(' Punctuation +'A' Name +':' Operator +' ' Text +'TStrA' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Low' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'S' Name +' ' Text +'=' Operator +' ' Text +'A' Name +'[' Punctuation +'i' Name +'])' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'TextIn' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'PosExText' Name +'(' Punctuation +'Text' Name +',' Operator +' ' Text +'S' Name +')' Punctuation +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'TextIn' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'SL' Name +'.' Operator +'Count' Name +'-' Operator +'1' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'SameText' Name.Builtin +'(' Punctuation +'Text' Name +',' Operator +' ' Text +'SL' Name +'[' Punctuation +'i' Name +'])' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'TextIn' Name.Function +'(' Punctuation +'A' Name +':' Operator +' ' Text +'TStrA' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Low' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'SameText' Name.Builtin +'(' Punctuation +'Text' Name +',' Operator +' ' Text +'A' Name +'[' Punctuation +'i' Name +'])' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrIndex' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'for' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'SL' Name +'.' Operator +'Count' Name +'-' Operator +'1' Literal.Number.Integer +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +' ' Text +'=' Operator +' ' Text +'SL' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +']' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'-' Operator +'1' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrIndex' Name.Function +'(' Punctuation +'A' Name +':' Operator +' ' Text +'TStrA' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'for' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Low' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +' ' Text +'=' Operator +' ' Text +'A' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +']' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'-' Operator +'1' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'TextIndex' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'for' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'SL' Name +'.' Operator +'Count' Name +'-' Operator +'1' Literal.Number.Integer +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'SameText' Name.Builtin +'(' Punctuation +'Text' Name +',' Operator +' ' Text +'SL' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +'])' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'-' Operator +'1' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'TextIndex' Name.Function +'(' Punctuation +'A' Name +':' Operator +' ' Text +'TStrA' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'Text' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'for' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Low' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'SameText' Name.Builtin +'(' Punctuation +'Text' Name +',' Operator +' ' Text +'A' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +'])' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'-' Operator +'1' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ReplaceChars' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Old' Name +',' Operator +' ' Text +'New' Keyword +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'S' Name +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'=' Operator +' ' Text +'Old' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'New' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ReplaceChars' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'Old' Name +':' Operator +' ' Text +'TCharSet' Name +';' Operator +' ' Text +'New' Keyword +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'S' Name +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'in' Keyword +' ' Text +'Old' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'New' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Replace' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +',' Operator +' ' Text +'Old' Name +',' Operator +' ' Text +'New' Keyword +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'oldp' Name +',' Operator +' ' Text +'ps' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'ps' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'True' Keyword +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'oldp' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'ps' Name +';' Operator +'\n ' Text +'ps' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'PosEx' Name +'(' Punctuation +'Old' Name +',' Operator +' ' Text +'S' Name +',' Operator +' ' Text +'oldp' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'ps' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'oldp' Name +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'S' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'oldp' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'Exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'oldp' Name +',' Operator +' ' Text +'ps' Name +' ' Text +'-' Operator +' ' Text +'oldp' Name +')' Punctuation +' ' Text +'+' Operator +' ' Text +'New' Keyword +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'ps' Name +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Old' Name +'))' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'SLOfFile' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'TStringList' Name +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'TStringList' Name +'.' Operator +'Create' Name +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'FileExists' Name.Builtin +'(' Punctuation +'FileName' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +'.' Operator +'LoadFromFile' Name +'(' Punctuation +'FileName' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ContainsEmptyLines' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'StrIn' Name +'(' Punctuation +'SL' Name +',' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'DeleteEmptyLines' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +')' Punctuation +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'SL' Name +'.' Operator +'Count' Name +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'SL' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +'\n ' Text +'SL' Name +'.' Operator +'Delete' Name +'(' Punctuation +'i' Name +')' Punctuation +'\n ' Text +'else' Keyword +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'i' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'DeleteCommentLines' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'CommentSign' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'//' Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'SL' Name +'.' Operator +'Count' Name +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'SL' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'or' Keyword +' ' Text +'(' Punctuation +'StrAtBegin' Name +'(' Punctuation +'TrimLeft' Name.Builtin +'(' Punctuation +'SL' Name +'[' Punctuation +'i' Name +'])' Punctuation +',' Operator +' ' Text +'CommentSign' Name +'))' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'SL' Name +'.' Operator +'Delete' Name +'(' Punctuation +'i' Name +')' Punctuation +'\n ' Text +'else' Keyword +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'i' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FindLine' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'for' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'SL' Name +'.' Operator +'Count' Name +'-' Operator +'1' Literal.Number.Integer +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'TextAtBegin' Name +'(' Punctuation +'SL' Name +'[' Punctuation +'Result' Name.Builtin.Pseudo +']' Punctuation +',' Operator +' ' Text +'S' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'-' Operator +'1' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'QuickSortSL' Name.Function +'(' Punctuation +'SL' Name +':' Operator +' ' Text +'TStringList' Name +')' Punctuation +';' Operator +'\n\n ' Text +'procedure' Keyword +' ' Text +'Sort' Name.Function +'(' Punctuation +'l' Name +',' Operator +' ' Text +'r' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +';' Operator +'\n ' Text +'var' Keyword +'\n ' Text +'i' Name +',' Operator +'j' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n ' Text +'z' Name +',' Operator +'x' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n ' Text +'begin' Keyword +'\n ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'l' Name +';' Operator +'\n ' Text +'j' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'r' Name +';' Operator +'\n ' Text +'x' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'SL' Name +'[(' Punctuation +'j' Name +' ' Text +'+' Operator +' ' Text +'i' Name +')' Punctuation +' ' Text +'div' Keyword +' ' Text +'2' Literal.Number.Integer +']' Punctuation +';' Operator +'\n ' Text +'repeat' Keyword +'\n ' Text +'while' Keyword +' ' Text +'SL' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'<' Operator +' ' Text +'x' Name +' ' Text +'do' Keyword +' ' Text +'Inc' Name.Builtin +'(' Punctuation +'i' Name +')' Punctuation +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'SL' Name +'[' Punctuation +'j' Name +']' Punctuation +' ' Text +'>' Operator +' ' Text +'x' Name +' ' Text +'do' Keyword +' ' Text +'Dec' Name.Builtin +'(' Punctuation +'j' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'i' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'j' Name +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'z' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'SL' Name +'[' Punctuation +'i' Name +']' Punctuation +';' Operator +'\n ' Text +'SL' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'SL' Name +'[' Punctuation +'j' Name +']' Punctuation +';' Operator +'\n ' Text +'SL' Name +'[' Punctuation +'j' Name +']' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'z' Name +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'i' Name +')' Punctuation +';' Operator +' ' Text +'Dec' Name.Builtin +'(' Punctuation +'j' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'until' Keyword +' ' Text +'i' Name +' ' Text +'>' Operator +' ' Text +'j' Name +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'j' Name +' ' Text +'>' Operator +' ' Text +'l' Name +' ' Text +'then' Keyword +' ' Text +'Sort' Name +'(' Punctuation +'l' Name +',' Operator +' ' Text +'j' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'r' Name +' ' Text +'then' Keyword +' ' Text +'Sort' Name +'(' Punctuation +'i' Name +',' Operator +' ' Text +'r' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'SL' Name +'.' Operator +'Count' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Sort' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Operator +' ' Text +'SL' Name +'.' Operator +'Count' Name +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'IncStrA' Name.Function +'(' Punctuation +'StrA' Name +':' Operator +' ' Text +'TStrA' Name +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'StrA' Name +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'StrA' Name +')' Punctuation +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'High' Name.Builtin +'(' Punctuation +'StrA' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrOfByteA' Name.Function +'(' Punctuation +'a' Name +':' Operator +' ' Text +'TByteA' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'string' Keyword +'(' Punctuation +'Copy' Name.Builtin +'(' Punctuation +'a' Name +',' Operator +' ' Text +'0' Literal.Number.Integer +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'a' Name +')))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ByteAOfStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'TByteA' Name +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'TByteA' Name +'(' Punctuation +'Copy' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'s' Name +')))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ByteAOfInt' Name.Function +'(' Punctuation +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'TByteA' Name +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'SizeOf' Name.Builtin +'(' Punctuation +'Integer' Keyword.Type +'))' Punctuation +';' Operator +'\n ' Text +'Move' Name.Builtin +'(' Punctuation +'i' Name +',' Operator +' ' Text +'Pointer' Keyword.Type +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +'^' Operator +',' Operator +' ' Text +'SizeOf' Name.Builtin +'(' Punctuation +'Integer' Keyword.Type +'))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'IntOfByteA' Name.Function +'(' Punctuation +'A' Name +':' Operator +' ' Text +'TByteA' Name +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'Move' Name.Builtin +'(' Punctuation +'Pointer' Keyword.Type +'(' Punctuation +'A' Name +')' Punctuation +'^' Operator +',' Operator +' ' Text +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'Min' Name.Builtin +'(' Punctuation +'Length' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +',' Operator +' ' Text +'SizeOf' Name.Builtin +'(' Punctuation +'Integer' Keyword.Type +')))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ByteAOfHex' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Hex' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'TByteA' Name +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n ' Text +'h' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'h' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'ExtractChars' Name +'(' Punctuation +'Hex' Name +',' Operator +' ' Text +'HexadecimalChars' Name +')' Punctuation +';' Operator +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'h' Name +')' Punctuation +' ' Text +'div' Keyword +' ' Text +'2' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'ByteOfHex' Name +'(' Punctuation +'Copy' Name.Builtin +'(' Punctuation +'h' Name +',' Operator +' ' Text +'(' Punctuation +'i' Name +' ' Text +'shl' Keyword +' ' Text +'1' Literal.Number.Integer +')' Punctuation +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'2' Literal.Number.Integer +'))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'SizeOfFile' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'F' Name +':' Operator +' ' Text +'file' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'AssignFile' Name.Builtin +'(' Punctuation +'F' Name +',' Operator +' ' Text +'FileName' Name +')' Punctuation +';' Operator +'\n ' Text +'{$I-}' Comment.Multiline +'Reset' Name.Builtin +'(' Punctuation +'F' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'{$I+}' Comment.Multiline +'\n ' Text +'if' Keyword +' ' Text +'IOResult' Name.Builtin +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'FileSize' Name.Builtin +'(' Punctuation +'F' Name +')' Punctuation +';' Operator +'\n ' Text +'CloseFile' Name.Builtin +'(' Punctuation +'F' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +' ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FileEx' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'AllowFolders' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'False' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'FindData' Name +':' Operator +' ' Text +'TWin32FindData' Name +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'FileName' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n ' Text +'Exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'AllowFolders' Name +' ' Text +'and' Keyword +' ' Text +'DirectoryExists' Name.Builtin +'(' Punctuation +'FileName' Name +'))' Punctuation +' ' Text +'or' Keyword +'\n ' Text +'(' Punctuation +'FindFirstFile' Name +'(' Punctuation +'PChar' Keyword.Type +'(' Punctuation +'FileName' Name +')' Punctuation +',' Operator +' ' Text +'FindData' Name +')' Punctuation +' ' Text +'<' Operator +'>' Operator +' ' Text +'INVALID_HANDLE_VALUE' Name +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'and' Keyword +' ' Text +'not' Keyword +' ' Text +'CharIn' Name +'(' Punctuation +'FileName' Name +',' Operator +' ' Text +'WildCards' Name +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'AllowFolders' Name +'\n ' Text +'or' Keyword +' ' Text +'((' Punctuation +'FindData' Name +'.' Operator +'dwFileAttributes' Name +' ' Text +'and' Keyword +' ' Text +'FILE_ATTRIBUTE_DIRECTORY' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +'))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'LWPSolve' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Dir' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'Dir' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'Dir' Name +'[' Punctuation +'Length' Name.Builtin +'(' Punctuation +'Dir' Name +')]' Punctuation +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'Dir' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Dir' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +' ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Dir' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'LWPSlash' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Dir' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'Dir' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'Dir' Name +'[' Punctuation +'Length' Name.Builtin +'(' Punctuation +'Dir' Name +')]' Punctuation +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'Dir' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Dir' Name +'))' Punctuation +';' Operator +'\n ' Text +'end' Keyword +' ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Dir' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ExtractDrive' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'Length' Name.Builtin +'(' Punctuation +'FileName' Name +')' Punctuation +' ' Text +'>' Operator +'=' Operator +' ' Text +'2' Literal.Number.Integer +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'FileName' Name +'[' Punctuation +'2' Literal.Number.Integer +']' Punctuation +' ' Text +'=' Operator +' ' Text +"'" Literal.String +':' Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'UpperCase' Name.Builtin +'(' Punctuation +'FileName' Name +'[' Punctuation +'1' Literal.Number.Integer +']' Punctuation +' ' Text +'+' Operator +' ' Text +"'" Literal.String +':\\' Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ExtractPath' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'p' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'CharPosR' Name +'(' Punctuation +"'" Literal.String +'\\' Literal.String +"'" Literal.String +',' Operator +' ' Text +'FileName' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'P' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'FileName' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'p' Name +')' Punctuation +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'FileName' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ExtractPrefix' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'UntilLastChar' Name +'(' Punctuation +'ExtractFileName' Name.Builtin +'(' Punctuation +'FileName' Name +')' Punctuation +',' Operator +' ' Text +"'" Literal.String +'.' Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ExtractSuffix' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'FromLastChar' Name +'(' Punctuation +'ExtractFileName' Name.Builtin +'(' Punctuation +'FileName' Name +')' Punctuation +',' Operator +' ' Text +"'" Literal.String +'.' Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'SameByteA' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'A' Name +',' Operator +' ' Text +'B' Name +':' Operator +' ' Text +'TByteA' Name +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'A' Name +' ' Text +'=' Operator +' ' Text +'B' Name +')' Punctuation +' ' Text +'or' Keyword +' ' Text +'((' Punctuation +'Length' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'B' Name +'))' Punctuation +' ' Text +'and' Keyword +' ' Text +'CompareMem' Name.Builtin +'(' Punctuation +'A' Name +',' Operator +' ' Text +'B' Name +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'A' Name +')))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Reverse' Name.Function +'(' Punctuation +'A' Name +':' Operator +' ' Text +'TByteA' Name +')' Punctuation +':' Operator +' ' Text +'TByteA' Name +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'A' Name +'))' Punctuation +';' Operator +'\n\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +'[' Punctuation +'High' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +' ' Text +'-' Operator +' ' Text +'i' Name +']' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'A' Name +'[' Punctuation +'i' Name +']' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Endian' Name.Function +'(' Punctuation +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'type' Keyword +'\n ' Text +'EndianArray' Name +' ' Text +'=' Operator +' ' Text +'packed' Keyword +' ' Text +'array' Keyword +'[' Punctuation +'0' Literal.Number.Integer +'.' Operator +'.' Operator +'3' Literal.Number.Integer +']' Punctuation +' ' Text +'of' Keyword +' ' Text +'Byte' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'a' Name +',' Operator +' ' Text +'b' Name +':' Operator +' ' Text +'EndianArray' Name +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'a' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'EndianArray' Name +'(' Punctuation +'i' Name +')' Punctuation +';' Operator +'\n ' Text +'b' Name +'[' Punctuation +'0' Literal.Number.Integer +']' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'a' Name +'[' Punctuation +'3' Literal.Number.Integer +']' Punctuation +';' Operator +'\n ' Text +'b' Name +'[' Punctuation +'1' Literal.Number.Integer +']' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'a' Name +'[' Punctuation +'2' Literal.Number.Integer +']' Punctuation +';' Operator +'\n ' Text +'b' Name +'[' Punctuation +'2' Literal.Number.Integer +']' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'a' Name +'[' Punctuation +'1' Literal.Number.Integer +']' Punctuation +';' Operator +'\n ' Text +'b' Name +'[' Punctuation +'3' Literal.Number.Integer +']' Punctuation +' ' Text +':' Operator +'=' Operator +' ' Text +'a' Name +'[' Punctuation +'0' Literal.Number.Integer +']' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Integer' Keyword.Type +'(' Punctuation +'b' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'SaveByteA' Name.Function +'(' Punctuation +'Data' Name +':' Operator +' ' Text +'TByteA' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n ' Text +'Overwrite' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'F' Name +':' Operator +' ' Text +'file' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'FileExists' Name.Builtin +'(' Punctuation +'FileName' Name +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'not' Keyword +' ' Text +'Overwrite' Name +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n ' Text +'Exit' Keyword +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'AssignFile' Name.Builtin +'(' Punctuation +'F' Name +',' Operator +' ' Text +'FileName' Name +')' Punctuation +';' Operator +'\n ' Text +'{$I-}' Comment.Multiline +'Rewrite' Name.Builtin +'(' Punctuation +'F' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'{$I+}' Comment.Multiline +'\n ' Text +'if' Keyword +' ' Text +'IOResult' Name.Builtin +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Data' Name +')' Punctuation +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'BlockWrite' Name.Builtin +'(' Punctuation +'F' Name +',' Operator +' ' Text +'Data' Name +'[' Punctuation +'0' Literal.Number.Integer +']' Punctuation +',' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Data' Name +'))' Punctuation +';' Operator +'\n ' Text +'CloseFile' Name.Builtin +'(' Punctuation +'F' Name +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'True' Keyword +';' Operator +'\n ' Text +'end' Keyword +' ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'LoadByteA' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'TByteA' Name +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'F' Name +':' Operator +' ' Text +'file' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'AssignFile' Name.Builtin +'(' Punctuation +'F' Name +',' Operator +' ' Text +'FileName' Name +')' Punctuation +';' Operator +'\n ' Text +'{$I-}' Comment.Multiline +'Reset' Name.Builtin +'(' Punctuation +'F' Name +',' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'{$I+}' Comment.Multiline +'\n ' Text +'if' Keyword +' ' Text +'IOResult' Name.Builtin +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'FileSize' Name.Builtin +'(' Punctuation +'F' Name +'))' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +')' Punctuation +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'BlockRead' Name.Builtin +'(' Punctuation +'F' Name +',' Operator +' ' Text +'Result' Name.Builtin.Pseudo +'[' Punctuation +'0' Literal.Number.Integer +']' Punctuation +',' Operator +' ' Text +'FileSize' Name.Builtin +'(' Punctuation +'F' Name +'))' Punctuation +';' Operator +'\n ' Text +'CloseFile' Name.Builtin +'(' Punctuation +'F' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +' ' Text +'else' Keyword +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'IsValidFileName' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'FileName' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'not' Keyword +' ' Text +'CharIn' Name +'(' Punctuation +'FileName' Name +',' Operator +' ' Text +'FileNameEnemies' Name +')' Punctuation +'\n ' Text +'and' Keyword +' ' Text +'CharIn' Name +'(' Punctuation +'Trim' Name.Builtin +'(' Punctuation +'FileName' Name +')' Punctuation +',' Operator +' ' Text +'AllChars' Name +' ' Text +'-' Operator +' ' Text +'[' Punctuation +"'" Literal.String +'.' Literal.String +"'" Literal.String +'])' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'MakeValidFileName' Name.Function +'(' Punctuation +'FileName' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'const' Keyword +' ' Text +'Default' Keyword.Pseudo +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'File' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'FileName' Name +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +'\n ' Text +'FileName' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Default' Keyword.Pseudo +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'CharIn' Name +'(' Punctuation +'FileName' Name +',' Operator +' ' Text +'FileNameEnemies' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'ReplaceChars' Name +'(' Punctuation +'FileName' Name +',' Operator +' ' Text +'FileNameEnemies' Name +',' Operator +' ' Text +"'" Literal.String +'_' Literal.String +"'" Literal.String +')' Punctuation +'\n ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'not' Keyword +' ' Text +'CharIn' Name +'(' Punctuation +'Trim' Name.Builtin +'(' Punctuation +'FileName' Name +')' Punctuation +',' Operator +' ' Text +'AllChars' Name +' ' Text +'-' Operator +' ' Text +'[' Punctuation +"'" Literal.String +'.' Literal.String +"'" Literal.String +'])' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Default' Keyword.Pseudo +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'FileName' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'IsValidInteger' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +"{const\n LowInt = '2147483648';\n HighInt = '2147483647';\nvar\n len, RealLen, i, o: Integer;\n c: Char;\nbegin\n Result := False;\n if S = '' then\n Exit;\n\n len := Length(S);\n o := 1;\n \n if S[1] = '-' then begin\n if len = 1 then\n Exit;\n Inc(o);\n while (o <= len) and (S[o] = '0') do\n Inc(o);\n if o > len then\n Exit;\n if o < len then begin\n RealLen := len - o + 1;\n if RealLen > Length(LowInt) then\n Exit\n else if RealLen = Length(LowInt) then begin\n for i := 1 to Length(LowInt) do begin\n c := S[i + o - 1];\n if (c < '0') or (c > LowInt[i]) then\n Exit;\n if c in ['0'..Char((Byte(LowInt[i])-1))] then\n Break;\n end;\n Inc(o, i);\n end;\n end;\n end else begin\n while (o <= len) and (S[o] = '0') do\n Inc(o);\n if o <= len then begin\n RealLen := len - o + 1;\n if RealLen > Length(HighInt) then\n Exit\n else if RealLen = Length(HighInt) then begin\n for i := 1 to Length(HighInt) do begin\n c := S[i + o - 1];\n if (c < '0') or (c > HighInt[i]) then\n Exit;\n if c in ['0'..Char((Byte(HighInt[i])-1))] then\n Break;\n end;\n Inc(o, i);\n end;\n end;\n end;\n\n for i := o to len do\n if not (S[i] in ['0'..'9']) then\n Exit;\n\n Result := True; }" Comment.Multiline +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Int64' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'StrToInt64Def' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'High' Name.Builtin +'(' Punctuation +'Int64' Keyword.Type +'))' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'i' Name +' ' Text +'>' Operator +'=' Operator +' ' Text +'Low' Name.Builtin +'(' Punctuation +'Integer' Keyword.Type +'))' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'i' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'High' Name.Builtin +'(' Punctuation +'Integer' Keyword.Type +'))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'IsValidCardinal' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +"{const\n HighCard = '4294967295';\nvar\n len, RealLen, i, o: Integer;\nbegin\n Result := False;\n if S = '' then\n Exit;\n\n len := Length(S);\n o := 1;\n \n while (o <= len) and (S[o] = '0') do\n Inc(o);\n if o <= len then begin\n RealLen := len - o + 1;\n if RealLen > Length(HighCard) then\n Exit\n else if RealLen = Length(HighCard) then begin\n for i := 1 to Length(HighCard) do begin\n if S[i + o - 1] > HighCard[i] then\n Exit;\n if S[i + o - 1] in ['0'..Char((Byte(HighCard[i])-1))] then\n Break;\n end;\n Inc(o, i);\n end;\n end;\n\n for i := o to len do\n if not (S[i] in ['0'..'9']) then\n Exit;\n\n Result := True; }" Comment.Multiline +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Int64' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'StrToInt64Def' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'i' Name +' ' Text +'>' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'i' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'High' Name.Builtin +'(' Punctuation +'Cardinal' Keyword.Type +'))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrOfBool' Name.Function +'(' Punctuation +'flag' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +' ' Text +'const' Keyword +' ' Text +'TrueStr' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'True' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'const' Keyword +' ' Text +'FalseStr' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'False' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Flag' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'TrueStr' Name +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'FalseStr' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'StrOfInt' Name.Function +'(' Punctuation +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n' Text + +"{ if i = 0 then begin\n Result := '0';\n Exit end;\n\n while i > 0 do begin\n Result := Char(Byte('0') + (i mod 10)) + Result;\n i := i div 10;\n end;}" Comment.Multiline +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'IntToStr' Name.Builtin +'(' Punctuation +'i' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'CardOfStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Res' Name +':' Operator +' ' Text +'Int64' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'StrToInt64Def' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Res' Name +' ' Text +'>' Operator +' ' Text +'High' Name.Builtin +'(' Punctuation +'Cardinal' Keyword.Type +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'High' Name.Builtin +'(' Punctuation +'Cardinal' Keyword.Type +')' Punctuation +'\n ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'Res' Name +' ' Text +'<' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Cardinal' Keyword.Type +'(' Punctuation +'Res' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'HexOrd' Name.Function +'(' Punctuation +'Hex' Name +':' Operator +' ' Text +'Char' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'THex' Name +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'case' Keyword +' ' Text +'Hex' Name +' ' Text +'of' Keyword +'\n ' Text +"'" Literal.String +'0' Literal.String +"'" Literal.String +'.' Operator +'.' Operator +"'" Literal.String +'9' Literal.String +"'" Literal.String +':' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Byte' Keyword.Type +'(' Punctuation +'Hex' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'48' Literal.Number.Integer +';' Operator +'\n ' Text +"'" Literal.String +'A' Literal.String +"'" Literal.String +'.' Operator +'.' Operator +"'" Literal.String +'F' Literal.String +"'" Literal.String +':' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Byte' Keyword.Type +'(' Punctuation +'Hex' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'55' Literal.Number.Integer +';' Operator +'\n ' Text +"'" Literal.String +'a' Literal.String +"'" Literal.String +'.' Operator +'.' Operator +"'" Literal.String +'f' Literal.String +"'" Literal.String +':' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Byte' Keyword.Type +'(' Punctuation +'Hex' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'87' Literal.Number.Integer +';' Operator +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ByteOfHex' Name.Function +'(' Punctuation +'Hex' Name +':' Operator +' ' Text +'THexByteStr' Name +')' Punctuation +':' Operator +' ' Text +'Byte' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'HexOrd' Name +'(' Punctuation +'Hex' Name +'[' Punctuation +'1' Literal.Number.Integer +'])' Punctuation +' ' Text +'shl' Keyword +' ' Text +'4' Literal.Number.Integer +')' Punctuation +' ' Text +'+' Operator +' ' Text +'HexOrd' Name +'(' Punctuation +'Hex' Name +'[' Punctuation +'2' Literal.Number.Integer +'])' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'DecOfHex' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Hex' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'IntToStr' Name.Builtin +'(' Punctuation +'CardOfHex' Name +'(' Punctuation +'Hex' Name +'))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'HexOfByte' Name.Function +'(' Punctuation +'b' Name +':' Operator +' ' Text +'Byte' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'THexByteStr' Name +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'HexChar' Name +'[(' Punctuation +'b' Name +' ' Text +'and' Keyword +' ' Text +'$F0' Literal.Number.Hex +')' Punctuation +' ' Text +'shr' Keyword +' ' Text +'4' Literal.Number.Integer +']' Punctuation +'\n ' Text +'+' Operator +' ' Text +'HexChar' Name +'[' Punctuation +' ' Text +'b' Name +' ' Text +'and' Keyword +' ' Text +'$0F' Literal.Number.Hex +' ' Text +']' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +"{function HexOfCard2(c: Cardinal): string;\nvar\n Data: array[0..(1 shl 4) - 1] of Char;\n i: Integer;\nbegin\n for i := 0 to (1 shl 4) - 1 do\n if i < 10 then\n Data[i] := Char(Ord('0') + i)\n else\n Data[i] := Char(Ord('A') + i - 10);\n\n Result := Data[(c and (((1 shl (1 shl 2)) - 1) shl (7 shl 2))) shr (7 shl 2)]\n + Data[(c and (((1 shl (1 shl 2)) - 1) shl (6 shl 2))) shr (6 shl 2)]\n + Data[(c and (((1 shl (1 shl 2)) - 1) shl (5 shl 2))) shr (5 shl 2)]\n + Data[(c and (((1 shl (1 shl 2)) - 1) shl (4 shl 2))) shr (4 shl 2)]\n + Data[(c and (((1 shl (1 shl 2)) - 1) shl (3 shl 2))) shr (3 shl 2)]\n + Data[(c and (((1 shl (1 shl 2)) - 1) shl (2 shl 2))) shr (2 shl 2)]\n + Data[(c and (((1 shl (1 shl 2)) - 1) shl (1 shl 2))) shr (1 shl 2)]\n + Data[(c and (((1 shl (1 shl 2)) - 1) shl (0 shl 2))) shr (0 shl 2)];\nend; }" Comment.Multiline +'\n\n' Text + +'function' Keyword +' ' Text +'HexOfCard' Name.Function +'(' Punctuation +'i' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'a' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'i' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'a' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'i' Name +' ' Text +'and' Keyword +' ' Text +'$F' Literal.Number.Hex +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'HexChar' Name +'[' Punctuation +'a' Name +']' Punctuation +' ' Text +'+' Operator +' ' Text +'Result' Name.Builtin.Pseudo +';' Operator +'\n ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'i' Name +' ' Text +'shr' Keyword +' ' Text +'4' Literal.Number.Integer +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'HexOfCard' Name.Function +'(' Punctuation +'i' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +' ' Text +'Digits' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'a' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'i' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'a' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'i' Name +' ' Text +'and' Keyword +' ' Text +'$F' Literal.Number.Hex +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'HexChar' Name +'[' Punctuation +'a' Name +']' Punctuation +' ' Text +'+' Operator +' ' Text +'Result' Name.Builtin.Pseudo +';' Operator +'\n ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'i' Name +' ' Text +'shr' Keyword +' ' Text +'4' Literal.Number.Integer +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'MulStr' Name +'(' Punctuation +"'" Literal.String +'0' Literal.String +"'" Literal.String +',' Operator +' ' Text +'Digits' Name +' ' Text +'-' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +'))' Punctuation +' ' Text +'+' Operator +' ' Text +'Result' Name.Builtin.Pseudo +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'PascalHexArray' Name.Function +'(' Punctuation +'a' Name +':' Operator +' ' Text +'TByteA' Name +';' Operator +' ' Text +'Name' Keyword.Pseudo +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +',' Operator +' ' Text +'len' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +'const' Literal.String +"'" Literal.String +' ' Text +'+' Operator +' ' Text +'EOL' Name +' ' Text +'+' Operator +'\n ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +' ' Text +'+' Operator +' ' Text +'Name' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +': array[0..' Literal.String +"'" Literal.String +' ' Text +'+' Operator +' ' Text +'IntToStr' Name.Builtin +'(' Punctuation +'High' Name.Builtin +'(' Punctuation +'a' Name +'))' Punctuation +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'] of Byte = (' Literal.String +"'" Literal.String +';' Operator +'\n\n ' Text +'len' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'a' Name +')' Punctuation +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'len' Name +'-' Operator +'1' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'i' Name +' ' Text +'mod' Keyword +' ' Text +'19' Literal.Number.Integer +')' Punctuation +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'EOL' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +' ' Text +'+' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'$' Literal.String +"'" Literal.String +' ' Text +'+' Operator +' ' Text +'HexOfByte' Name +'(' Punctuation +'a' Name +'[' Punctuation +'i' Name +'])' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'len' Name +'-' Operator +'1' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +"'" Literal.String +',' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'EOL' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +' );' Literal.String +"'" Literal.String +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'HexOfByteA' Name.Function +'(' Punctuation +'a' Name +':' Operator +' ' Text +'TByteA' Name +';' Operator +' ' Text +'Blocks' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'const' Keyword +' ' Text +'Splitter' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'Blocks' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'a' Name +')' Punctuation +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'HexOfByte' Name +'(' Punctuation +'a' Name +'[' Punctuation +'i' Name +'])' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'High' Name.Builtin +'(' Punctuation +'a' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'if' Keyword +' ' Text +'((' Punctuation +'i' Name +'+' Operator +'1' Literal.Number.Integer +')' Punctuation +' ' Text +'mod' Keyword +' ' Text +'Blocks' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Splitter' Name +';' Operator +'\n ' Text +'end' Keyword +'\n ' Text +'else' Keyword +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'a' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'HexOfByte' Name +'(' Punctuation +'a' Name +'[' Punctuation +'i' Name +'])' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'BinOfByteA' Name.Function +'(' Punctuation +'a' Name +':' Operator +' ' Text +'TByteA' Name +';' Operator +' ' Text +'Blocks' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'4' Literal.Number.Integer +';' Operator +'\n ' Text +'const' Keyword +' ' Text +'Splitter' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +' ' Literal.String +"'" Literal.String +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +',' Operator +' ' Text +'max' Name.Builtin +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n ' Text +'Bit' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'Blocks' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'max' Name.Builtin +' ' Text +':' Operator +'=' Operator +' ' Text +'8' Literal.Number.Integer +' ' Text +'*' Operator +' ' Text +'(' Punctuation +'High' Name.Builtin +'(' Punctuation +'a' Name +'))' Punctuation +' ' Text +'+' Operator +' ' Text +'7' Literal.Number.Integer +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'max' Name.Builtin +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Bit' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'7' Literal.Number.Integer +'-' Operator +'(' Punctuation +'i' Name +' ' Text +'mod' Keyword +' ' Text +'8' Literal.Number.Integer +')' Punctuation +' ' Text +'in' Keyword +' ' Text +'TBitSet' Name +'(' Punctuation +'a' Name +'[' Punctuation +'i' Name +' ' Text +'div' Keyword +' ' Text +'8' Literal.Number.Integer +'])' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Char' Keyword.Type +'(' Punctuation +'Byte' Keyword.Type +'(' Punctuation +"'" Literal.String +'0' Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'+' Operator +' ' Text +'Byte' Keyword.Type +'(' Punctuation +'Bit' Name +'))' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'max' Name.Builtin +' ' Text +'then' Keyword +'\n ' Text +'if' Keyword +' ' Text +'((' Punctuation +'i' Name +'+' Operator +'1' Literal.Number.Integer +')' Punctuation +' ' Text +'mod' Keyword +' ' Text +'Blocks' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Splitter' Name +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'end' Keyword +' ' Text +'else' Keyword +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'a' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Char' Keyword.Type +'(' Punctuation +'Byte' Keyword.Type +'(' Punctuation +"'" Literal.String +'0' Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'+' Operator +' ' Text +'a' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'shr' Keyword +' ' Text +'(' Punctuation +'i' Name +' ' Text +'and' Keyword +' ' Text +'8' Literal.Number.Integer +'))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'CardOfHex' Name.Function +'(' Punctuation +'Hex' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'Hex' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'ExtractChars' Name +'(' Punctuation +'Hex' Name +',' Operator +' ' Text +'HexadecimalChars' Name +')' Punctuation +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'8' Literal.Number.Integer +')' Punctuation +';' Operator +'\n\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Hex' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Hex' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +'0' Literal.String +"'" Literal.String +' ' Text +'then' Keyword +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'HexOrd' Name +'(' Punctuation +'Hex' Name +'[' Punctuation +'i' Name +'])' Punctuation +' ' Text +'shl' Keyword +' ' Text +'((' Punctuation +'Length' Name.Builtin +'(' Punctuation +'Hex' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'i' Name +')' Punctuation +' ' Text +'shl' Keyword +' ' Text +'2' Literal.Number.Integer +'))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'IntOfBin' Name.Function +'(' Punctuation +'Bin' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'Bin' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'ExtractChars' Name +'(' Punctuation +'Bin' Name +',' Operator +' ' Text +'BinaryChars' Name +')' Punctuation +',' Operator +' ' Text +'1' Literal.Number.Integer +',' Operator +' ' Text +'32' Literal.Number.Integer +')' Punctuation +';' Operator +'\n\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Bin' Name +')' Punctuation +' ' Text +'downto' Keyword +' ' Text +'1' Literal.Number.Integer +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Bin' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'1' Literal.String +"'" Literal.String +' ' Text +'then' Keyword +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'shl' Keyword +' ' Text +'(' Punctuation +'Length' Name.Builtin +'(' Punctuation +'Bin' Name +')' Punctuation +' ' Text +'-' Operator +' ' Text +'i' Name +'))' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'BinOfInt' Name.Function +'(' Punctuation +'n' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'a' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'n' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +'0' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'n' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'a' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'n' Name +' ' Text +'and' Keyword +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Char' Keyword.Type +'(' Punctuation +'a' Name +' ' Text +'+' Operator +' ' Text +'Byte' Keyword.Type +'(' Punctuation +"'" Literal.String +'0' Literal.String +"'" Literal.String +'))' Punctuation +' ' Text +'+' Operator +' ' Text +'Result' Name.Builtin.Pseudo +';' Operator +'\n ' Text +'n' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'n' Name +' ' Text +'shr' Keyword +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'BinOfIntFill' Name.Function +'(' Punctuation +'n' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +' ' Text +'MinCount' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'8' Literal.Number.Integer +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'a' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'n' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'MulStr' Name +'(' Punctuation +"'" Literal.String +'0' Literal.String +"'" Literal.String +',' Operator +' ' Text +'MinCount' Name +')' Punctuation +';' Operator +'\n ' Text +'Exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'n' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'a' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'n' Name +' ' Text +'and' Keyword +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Char' Keyword.Type +'(' Punctuation +'a' Name +' ' Text +'+' Operator +' ' Text +'Byte' Keyword.Type +'(' Punctuation +"'" Literal.String +'0' Literal.String +"'" Literal.String +'))' Punctuation +' ' Text +'+' Operator +' ' Text +'Result' Name.Builtin.Pseudo +';' Operator +'\n ' Text +'n' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'n' Name +' ' Text +'shr' Keyword +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'MulStr' Name +'(' Punctuation +"'" Literal.String +'0' Literal.String +"'" Literal.String +',' Operator +' ' Text +'MinCount' Name +' ' Text +'-' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +'))' Punctuation +' ' Text +'+' Operator +' ' Text +'Result' Name.Builtin.Pseudo +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'BaseNOfInt' Name.Function +'(' Punctuation +'I' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +' ' Text +'B' Name +':' Operator +' ' Text +'TBaseN' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'a' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'B' Name +' ' Text +'<' Operator +' ' Text +'2' Literal.Number.Integer +')' Punctuation +' ' Text +'or' Keyword +' ' Text +'(' Punctuation +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +'0' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'Exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'i' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'a' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'i' Name +' ' Text +'mod' Keyword +' ' Text +'B' Name +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'BaseNChar' Name +'[' Punctuation +'a' Name +']' Punctuation +' ' Text +'+' Operator +' ' Text +'Result' Name.Builtin.Pseudo +';' Operator +'\n ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'i' Name +' ' Text +'div' Keyword +' ' Text +'B' Name +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'IntOfBaseN' Name.Function +'(' Punctuation +'V' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'B' Name +':' Operator +' ' Text +'TBaseN' Name +')' Punctuation +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n ' Text +'F' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +';' Operator +'\n ' Text +'c' Name +':' Operator +' ' Text +'Byte' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'V' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'TrimAll' Name +'(' Punctuation +'V' Name +')' Punctuation +';' Operator +'\n ' Text +'F' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'V' Name +')' Punctuation +' ' Text +'downto' Keyword +' ' Text +'1' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'c' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Byte' Keyword.Type +'(' Punctuation +'UpCase' Name.Builtin +'(' Punctuation +'V' Name +'[' Punctuation +'i' Name +']))' Punctuation +';' Operator +'\n ' Text +'case' Keyword +' ' Text +'Char' Keyword.Type +'(' Punctuation +'c' Name +')' Punctuation +' ' Text +'of' Keyword +'\n ' Text +"'" Literal.String +'0' Literal.String +"'" Literal.String +'.' Operator +'.' Operator +"'" Literal.String +'9' Literal.String +"'" Literal.String +':' Operator +' ' Text +'c' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'c' Name +' ' Text +'-' Operator +' ' Text +'48' Literal.Number.Integer +';' Operator +'\n ' Text +"'" Literal.String +'A' Literal.String +"'" Literal.String +'.' Operator +'.' Operator +"'" Literal.String +'Z' Literal.String +"'" Literal.String +':' Operator +' ' Text +'c' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'c' Name +' ' Text +'-' Operator +' ' Text +'55' Literal.Number.Integer +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'c' Name +' ' Text +'<' Operator +' ' Text +'B' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Byte' Keyword.Type +'(' Punctuation +'c' Name +')' Punctuation +' ' Text +'*' Operator +' ' Text +'F' Name +';' Operator +'\n ' Text +'F' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'F' Name +' ' Text +'*' Operator +' ' Text +'B' Name +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'KeepIn' Name.Function +'(' Punctuation +'i' Name +',' Operator +' ' Text +'Bottom' Name +',' Operator +' ' Text +'Top' Name +':' Operator +' ' Text +'Variant' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Variant' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'i' Name +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'>' Operator +' ' Text +'Top' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Top' Name +'\n ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'<' Operator +' ' Text +'Bottom' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Bottom' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'InRange' Name.Function +'(' Punctuation +'Value' Name +',' Operator +' ' Text +'Bottom' Name +',' Operator +' ' Text +'Top' Name +':' Operator +' ' Text +'Variant' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'Value' Name +' ' Text +'>' Operator +'=' Operator +' ' Text +'Bottom' Name +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'Value' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'Top' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'InStrictRange' Name.Function +'(' Punctuation +'Value' Name +',' Operator +' ' Text +'Bottom' Name +',' Operator +' ' Text +'Top' Name +':' Operator +' ' Text +'Variant' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'Value' Name +' ' Text +'>' Operator +' ' Text +'Bottom' Name +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'Value' Name +' ' Text +'<' Operator +' ' Text +'Top' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Min' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'A' Name +',' Operator +' ' Text +'B' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'A' Name +' ' Text +'<' Operator +' ' Text +'B' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'A' Name +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'B' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Min' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'A' Name +':' Operator +' ' Text +'TIntA' Name +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'A' Name +'[' Punctuation +'0' Literal.Number.Integer +']' Punctuation +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'A' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'<' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'A' Name +'[' Punctuation +'i' Name +']' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Max' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'A' Name +',' Operator +' ' Text +'B' Name +':' Operator +' ' Text +'Integer' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'A' Name +' ' Text +'>' Operator +' ' Text +'B' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'A' Name +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'B' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Max' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'A' Name +':' Operator +' ' Text +'TIntA' Name +')' Punctuation +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'A' Name +'[' Punctuation +'0' Literal.Number.Integer +']' Punctuation +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'A' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'A' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'>' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'A' Name +'[' Punctuation +'i' Name +']' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'RangesOfStr' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'TRanges' Name +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'SL' Name +':' Operator +' ' Text +'TStringList' Name +';' Operator +'\n ' Text +'r' Name +',' Operator +' ' Text +'b' Name +',' Operator +' ' Text +'t' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n ' Text +'i' Name +',' Operator +' ' Text +'p' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n ' Text +'function' Keyword +' ' Text +'TryStrToCard' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'out' Name +' ' Text +'Value' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n ' Text +'var' Keyword +'\n ' Text +'E' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n ' Text +'begin' Keyword +'\n ' Text +'Val' Name.Builtin +'(' Punctuation +'S' Name +',' Operator +' ' Text +'Value' Name +',' Operator +' ' Text +'E' Name +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'E' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'nil' Keyword +';' Operator +'\n ' Text +'SL' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'TStringList' Name +'.' Operator +'Create' Name +';' Operator +'\n ' Text +'try' Keyword +'\n ' Text +'Split' Name +'(' Punctuation +'S' Name +',' Operator +' ' Text +'RangesSeparator' Name +',' Operator +' ' Text +'SL' Name +')' Punctuation +';' Operator +'\n ' Text +'SetLength' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'SL' Name +'.' Operator +'Count' Name +')' Punctuation +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'SL' Name +'.' Operator +'Count' Name +'-' Operator +'1' Literal.Number.Integer +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'r' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'SL' Name +'[' Punctuation +'i' Name +']' Punctuation +';' Operator +'\n ' Text +'with' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'CharPos' Name +'(' Punctuation +'RangeInnerSeparator' Name +',' Operator +' ' Text +'r' Name +')' Punctuation +';' Operator +'\n ' Text +'Simple' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'p' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +' ' Text +"// no '-' found" Comment.Single +'\n ' Text +'if' Keyword +' ' Text +'Simple' Name +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'r' Name +' ' Text +'=' Operator +' ' Text +'RangeInfinite' Name +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +' ' Text +'// * --> *-*' Comment.Single +'\n ' Text +'Simple' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n ' Text +'Bottom' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Low' Name.Builtin +'(' Punctuation +'Bottom' Name +')' Punctuation +';' Operator +'\n ' Text +'Top' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'High' Name.Builtin +'(' Punctuation +'Top' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +' ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'not' Keyword +' ' Text +'TryStrToCard' Name +'(' Punctuation +'r' Name +',' Operator +' ' Text +'Value' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Break' Keyword +';' Operator +'\n\n ' Text +'end' Keyword +' ' Text +'else' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'TileStr' Name +'(' Punctuation +'r' Name +',' Operator +' ' Text +'p' Name +',' Operator +' ' Text +'p' Name +',' Operator +' ' Text +'b' Name +',' Operator +' ' Text +'t' Name +')' Punctuation +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'b' Name +' ' Text +'=' Operator +' ' Text +'RangeInfinite' Name +' ' Text +'then' Keyword +'\n ' Text +'Bottom' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Low' Name.Builtin +'(' Punctuation +'Bottom' Name +')' Punctuation +'\n ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'not' Keyword +' ' Text +'TryStrToCard' Name +'(' Punctuation +'b' Name +',' Operator +' ' Text +'Bottom' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Break' Keyword +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'t' Name +' ' Text +'=' Operator +' ' Text +'RangeInfinite' Name +' ' Text +'then' Keyword +'\n ' Text +'Top' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'High' Name.Builtin +'(' Punctuation +'Top' Name +')' Punctuation +'\n ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'not' Keyword +' ' Text +'TryStrToCard' Name +'(' Punctuation +'t' Name +',' Operator +' ' Text +'Top' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Break' Keyword +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Bottom' Name +' ' Text +'>' Operator +' ' Text +'Top' Name +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'p' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Bottom' Name +';' Operator +' ' Text +'Bottom' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Top' Name +';' Operator +' ' Text +'Top' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'p' Name +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'i' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +'SL' Name +'.' Operator +'Count' Name +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'nil' Keyword +';' Operator +'\n\n ' Text +'finally' Keyword +'\n ' Text +'SL' Name +'.' Operator +'Free' Name +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'InRanges' Name.Function +'(' Punctuation +'Ranges' Name +':' Operator +' ' Text +'TRanges' Name +';' Operator +' ' Text +'TestValue' Name +':' Operator +' ' Text +'Cardinal' Keyword.Type +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'True' Keyword +';' Operator +'\n\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'High' Name.Builtin +'(' Punctuation +'Ranges' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'with' Keyword +' ' Text +'Ranges' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Simple' Name +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'TestValue' Name +' ' Text +'=' Operator +' ' Text +'Value' Name +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +' ' Text +'else' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'InRange' Name.Builtin +'(' Punctuation +'TestValue' Name +',' Operator +' ' Text +'Bottom' Name +',' Operator +' ' Text +'Top' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'WriteSL' Name.Function +'(' Punctuation +'Strings' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'Prefix' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'const' Keyword +' ' Text +'Suffix' Name +':' Operator +' ' Text +'string' Keyword +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'i' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'Strings' Name +'.' Operator +'Count' Name +'-' Operator +'1' Literal.Number.Integer +' ' Text +'do' Keyword +'\n ' Text +'WriteLn' Name.Builtin +'(' Punctuation +'Prefix' Name +' ' Text +'+' Operator +' ' Text +'Strings' Name +'[' Punctuation +'i' Name +']' Punctuation +' ' Text +'+' Operator +' ' Text +'Suffix' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Success' Name.Function +'(' Punctuation +'Res' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'ResultOnSuccess' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'ERROR_SUCCESS' Name +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'Res' Name +' ' Text +'=' Operator +' ' Text +'ResultOnSuccess' Name +')' Punctuation +';' Operator +'\n ' Text +'LastSuccessRes' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Res' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Failure' Name.Function +'(' Punctuation +'Res' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +' ' Text +'ResultOnSuccess' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'ERROR_SUCCESS' Name +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'not' Keyword +' ' Text +'Success' Name +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'ResultOnSuccess' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'ExpandString' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Len' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n ' Text +'P' Name +',' Operator +' ' Text +'Res' Name +':' Operator +' ' Text +'PChar' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'P' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'PChar' Keyword.Type +'(' Punctuation +'S' Name +')' Punctuation +';' Operator +'\n ' Text +'Len' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'ExpandEnvironmentStrings' Name +'(' Punctuation +'P' Name +',' Operator +' ' Text +'nil' Keyword +',' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Len' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'GetMem' Name.Builtin +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'Len' Name +')' Punctuation +';' Operator +'\n ' Text +'ExpandEnvironmentStrings' Name +'(' Punctuation +'P' Name +',' Operator +' ' Text +'Res' Name +',' Operator +' ' Text +'Len' Name +')' Punctuation +';' Operator +'\n\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Res' Name +';' Operator +'\n ' Text +'FreeMem' Name.Builtin +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'Len' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FindAll' Name.Function +'(' Punctuation +'Strings' Name +':' Operator +' ' Text +'TStrings' Name +';' Operator +' ' Text +'const' Keyword +' ' Text +'Mask' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n ' Text +'ScanSubDirs' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +';' Operator +' ' Text +'Attributes' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'faFindEveryFile' Name +';' Operator +'\n ' Text +'FileReturn' Name +':' Operator +' ' Text +'TFileNameFunc' Name +' ' Text +'=' Operator +' ' Text +'nil' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Path' Name +',' Operator +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n ' Text +'procedure' Keyword +' ' Text +'ScanDir' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Path' Name +',' Operator +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n ' Text +'var' Keyword +'\n ' Text +'PSR' Name +':' Operator +' ' Text +'TSearchRec' Name +';' Operator +'\n ' Text +'Res' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n ' Text +'procedure' Keyword +' ' Text +'Add' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'S' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'S' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +'\n ' Text +'Strings' Name +'.' Operator +'Add' Name +'(' Punctuation +'S' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'begin' Keyword +'\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'FindFirst' Name.Builtin +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +'FileName' Name +',' Operator +' ' Text +'Attributes' Name +',' Operator +' ' Text +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'Success' Name +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'Assigned' Name.Builtin +'(' Punctuation +'FileReturn' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Add' Name +'(' Punctuation +'FileReturn' Name +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +'PSR' Name +'.' Operator +'Name' Name +'))' Punctuation +'\n ' Text +'else' Keyword +'\n ' Text +'Add' Name +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +'PSR' Name +'.' Operator +'Name' Name +')' Punctuation +';' Operator +'\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'FindNext' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'FindClose' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'not' Keyword +' ' Text +'ScanSubDirs' Name +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'FindFirst' Name.Builtin +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'*' Literal.String +"'" Literal.String +',' Operator +' ' Text +'faDirectory' Name +',' Operator +' ' Text +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'Success' Name +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'PSR' Name +'.' Operator +'Attr' Name +' ' Text +'and' Keyword +' ' Text +'faDirectory' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'and' Keyword +' ' Text +'(' Punctuation +'PSR' Name +'.' Operator +'Name' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +'.' Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'PSR' Name +'.' Operator +'Name' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +'..' Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'ScanDir' Name +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +'PSR' Name +'.' Operator +'Name' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +',' Operator +' ' Text +'FileName' Name +')' Punctuation +';' Operator +'\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'FindNext' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'FindClose' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n' Text + +'begin' Keyword +'\n ' Text +'Strings' Name +'.' Operator +'Clear' Name +';' Operator +'\n ' Text +'Path' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'ExtractPath' Name +'(' Punctuation +'Mask' Name +')' Punctuation +';' Operator +'\n ' Text +'FileName' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'ExtractFileName' Name.Builtin +'(' Punctuation +'Mask' Name +')' Punctuation +';' Operator +'\n ' Text +'ScanDir' Name +'(' Punctuation +'Path' Name +',' Operator +' ' Text +'FileName' Name +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Strings' Name +'.' Operator +'Count' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FindAllFirst' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Mask' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'ScanSubDirs' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +';' Operator +'\n ' Text +'Attributes' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'faFindEveryFile' Name +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Path' Name +',' Operator +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n ' Text +'function' Keyword +' ' Text +'ScanDir' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Path' Name +',' Operator +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n ' Text +'var' Keyword +'\n ' Text +'PSR' Name +':' Operator +' ' Text +'TSearchRec' Name +';' Operator +'\n ' Text +'Res' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'False' Keyword +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Success' Name +'(' Punctuation +'FindFirst' Name.Builtin +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +'FileName' Name +',' Operator +' ' Text +'Attributes' Name +',' Operator +' ' Text +'PSR' Name +')' Punctuation +',' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'FindAllFirst' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Path' Name +' ' Text +'+' Operator +' ' Text +'PSR' Name +'.' Operator +'Name' Name +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'True' Keyword +';' Operator +'\n ' Text +'FindClose' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'Exit' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'not' Keyword +' ' Text +'ScanSubDirs' Name +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'FindFirst' Name.Builtin +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'*' Literal.String +"'" Literal.String +',' Operator +' ' Text +'faDirectory' Name +',' Operator +' ' Text +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'not' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'and' Keyword +' ' Text +'Success' Name +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'PSR' Name +'.' Operator +'Attr' Name +' ' Text +'and' Keyword +' ' Text +'faDirectory' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'and' Keyword +' ' Text +'(' Punctuation +'PSR' Name +'.' Operator +'Name' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +'.' Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'PSR' Name +'.' Operator +'Name' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +'..' Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'ScanDir' Name +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +'PSR' Name +'.' Operator +'Name' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +',' Operator +' ' Text +'FileName' Name +')' Punctuation +';' Operator +'\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'FindNext' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'FindClose' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'Path' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'ExtractPath' Name +'(' Punctuation +'Mask' Name +')' Punctuation +';' Operator +'\n ' Text +'FileName' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'ExtractFileName' Name.Builtin +'(' Punctuation +'Mask' Name +')' Punctuation +';' Operator +'\n ' Text +'ScanDir' Name +'(' Punctuation +'Path' Name +',' Operator +' ' Text +'FileName' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'DeleteFiles' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Mask' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'ScanSubDirs' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +';' Operator +'\n ' Text +'Attributes' Name +':' Operator +' ' Text +'Integer' Keyword.Type +' ' Text +'=' Operator +' ' Text +'faFindEveryFile' Name +')' Punctuation +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Path' Name +',' Operator +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n\n ' Text +'procedure' Keyword +' ' Text +'ScanDir' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'Path' Name +',' Operator +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n ' Text +'var' Keyword +'\n ' Text +'PSR' Name +':' Operator +' ' Text +'TSearchRec' Name +';' Operator +'\n ' Text +'Res' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n\n ' Text +'procedure' Keyword +' ' Text +'TryDeleteFile' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n ' Text +'begin' Keyword +'\n ' Text +'try' Keyword +'\n ' Text +'DeleteFile' Name.Builtin +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +'PSR' Name +'.' Operator +'Name' Name +')' Punctuation +';' Operator +'\n ' Text +'except' Keyword +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'begin' Keyword +'\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'FindFirst' Name.Builtin +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +'FileName' Name +',' Operator +' ' Text +'Attributes' Name +',' Operator +' ' Text +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'Success' Name +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'TryDeleteFile' Name +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +'PSR' Name +'.' Operator +'Name' Name +')' Punctuation +';' Operator +'\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'FindNext' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'FindClose' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'not' Keyword +' ' Text +'ScanSubDirs' Name +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'FindFirst' Name.Builtin +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'*' Literal.String +"'" Literal.String +',' Operator +' ' Text +'faDirectory' Name +',' Operator +' ' Text +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'Success' Name +'(' Punctuation +'Res' Name +',' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'PSR' Name +'.' Operator +'Attr' Name +' ' Text +'and' Keyword +' ' Text +'faDirectory' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'and' Keyword +' ' Text +'(' Punctuation +'PSR' Name +'.' Operator +'Name' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +'.' Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'PSR' Name +'.' Operator +'Name' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +'..' Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'ScanDir' Name +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +'PSR' Name +'.' Operator +'Name' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +',' Operator +' ' Text +'FileName' Name +')' Punctuation +';' Operator +'\n ' Text +'TryDeleteFile' Name +'(' Punctuation +'Path' Name +' ' Text +'+' Operator +' ' Text +'PSR' Name +'.' Operator +'Name' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'FindNext' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'FindClose' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Path' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'ExtractPath' Name +'(' Punctuation +'Mask' Name +')' Punctuation +';' Operator +'\n ' Text +'FileName' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'ExtractFileName' Name.Builtin +'(' Punctuation +'Mask' Name +')' Punctuation +';' Operator +'\n ' Text +'ScanDir' Name +'(' Punctuation +'Path' Name +',' Operator +' ' Text +'FileName' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'GetFileNew' Name.Function +'(' Punctuation +'FileName' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +' ' Text +'NoFloppyDrives' Name +':' Operator +' ' Text +'Boolean' Keyword.Type +' ' Text +'=' Operator +' ' Text +'True' Keyword +')' Punctuation +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Drive' Name +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n ' Text +'pf' Name +',' Operator +' ' Text +'pd' Name +',' Operator +' ' Text +'Len' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n ' Text +'PSR' Name +':' Operator +' ' Text +'TSearchRec' Name +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'FileName' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Trim' Name.Builtin +'(' Punctuation +'FileName' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Length' Name.Builtin +'(' Punctuation +'FileName' Name +')' Punctuation +' ' Text +'<' Operator +' ' Text +'2' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'Drive' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'ExtractDrive' Name +'(' Punctuation +'FileName' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'not' Keyword +' ' Text +'DirectoryExists' Name.Builtin +'(' Punctuation +'Drive' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'NoFloppyDrives' Name +' ' Text +'and' Keyword +' ' Text +'(' Punctuation +'Drive' Name +'[' Punctuation +'1' Literal.Number.Integer +']' Punctuation +' ' Text +'in' Keyword +' ' Text +'[' Punctuation +"'" Literal.String +'A' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'B' Literal.String +"'" Literal.String +'])' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n\n ' Text +'Len' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'FileName' Name +')' Punctuation +';' Operator +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Drive' Name +';' Operator +'\n ' Text +'pf' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Length' Name.Builtin +'(' Punctuation +'Drive' Name +')' Punctuation +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'pf' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'Len' Name +' ' Text +'do' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'FileName' Name +'[' Punctuation +'pf' Name +']' Punctuation +' ' Text +'=' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'pf' Name +')' Punctuation +';' Operator +'\n ' Text +'Continue' Keyword +';' Operator +' ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'pd' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'CharPos' Name +'(' Punctuation +"'" Literal.String +'\\' Literal.String +"'" Literal.String +',' Operator +' ' Text +'FileName' Name +',' Operator +' ' Text +'pf' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'pd' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'0' Literal.Number.Integer +'=' Operator +'FindFirst' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'FileName' Name +',' Operator +' ' Text +'pf' Name +',' Operator +' ' Text +'MaxInt' Name +')' Punctuation +',' Operator +' ' Text +'faFindEveryFile' Name +',' Operator +' ' Text +'PSR' Name +')' Punctuation +' ' Text +'then' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'PSR' Name +'.' Operator +'Name' Name +';' Operator +'\n ' Text +'Break' Keyword +';' Operator +' ' Text +'end' Keyword +' ' Text +'else' Keyword +' ' Text +'begin' Keyword +'\n ' Text +'FindClose' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'0' Literal.Number.Integer +'=' Operator +'FindFirst' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'FileName' Name +',' Operator +' ' Text +'pf' Name +',' Operator +' ' Text +'MaxInt' Name +')' Punctuation +',' Operator +' ' Text +'faDirectory' Name +',' Operator +' ' Text +'PSR' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'PSR' Name +'.' Operator +'Name' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'FindClose' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +'\n ' Text +'Break' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'0' Literal.Number.Integer +'=' Operator +'FindFirst' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'Copy' Name.Builtin +'(' Punctuation +'FileName' Name +',' Operator +' ' Text +'pf' Name +',' Operator +' ' Text +'pd' Name +' ' Text +'-' Operator +' ' Text +'pf' Name +')' Punctuation +',' Operator +' ' Text +'faDirectory' Name +',' Operator +' ' Text +'PSR' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'+' Operator +' ' Text +'PSR' Name +'.' Operator +'Name' Name +' ' Text +'+' Operator +' ' Text +"'" Literal.String +'\\' Literal.String +"'" Literal.String +'\n ' Text +'else' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n ' Text +'FindClose' Name.Builtin +'(' Punctuation +'PSR' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Result' Name.Builtin.Pseudo +' ' Text +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +' ' Text +'then' Keyword +'\n ' Text +'Break' Keyword +';' Operator +'\n\n ' Text +'pf' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'pd' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'Result' Name.Builtin.Pseudo +' ' Text +'<' Operator +'>' Operator +' ' Text +"'" Literal.String +"'" Literal.String +')' Punctuation +' ' Text +'and' Keyword +' ' Text +'not' Keyword +' ' Text +'FileEx' Name +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'True' Keyword +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +"'" Literal.String +"'" Literal.String +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'DateTimeOfFileTime' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileTime' Name +':' Operator +' ' Text +'TFileTime' Name +')' Punctuation +':' Operator +' ' Text +'TDateTime' Keyword.Type +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'LocalFileTime' Name +':' Operator +' ' Text +'TFileTime' Name +';' Operator +'\n ' Text +'Res' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n\n ' Text +'FileTimeToLocalFileTime' Name +'(' Punctuation +'FileTime' Name +',' Operator +' ' Text +'LocalFileTime' Name +')' Punctuation +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'not' Keyword +' ' Text +'FileTimeToDosDateTime' Name +'(' Punctuation +'LocalFileTime' Name +',' Operator +' ' Text +'LongRec' Name +'(' Punctuation +'Res' Name +')' Punctuation +'.' Operator +'Hi' Name +',' Operator +'\n ' Text +'LongRec' Name +'(' Punctuation +'Res' Name +')' Punctuation +'.' Operator +'Lo' Name +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Res' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'-' Operator +'1' Literal.Number.Integer +';' Operator +'\n\n ' Text +'if' Keyword +' ' Text +'(' Punctuation +'Res' Name +' ' Text +'=' Operator +' ' Text +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +' ' Text +'or' Keyword +' ' Text +'(' Punctuation +'Res' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'try' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'FileDateToDateTime' Name.Builtin +'(' Punctuation +'Res' Name +')' Punctuation +';' Operator +'\n ' Text +'except' Keyword +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'FileNew' Name.Function +'(' Punctuation +'const' Keyword +' ' Text +'FileName' Name +':' Operator +' ' Text +'string' Keyword +')' Punctuation +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Handle' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Handle' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'FileCreate' Name.Builtin +'(' Punctuation +'FileName' Name +')' Punctuation +';' Operator +'\n ' Text +'FileClose' Name.Builtin +'(' Punctuation +'Handle' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Win32PlatformStr' Name.Function +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'const' Keyword +'\n ' Text +'PlatformStrings' Name +':' Operator +' ' Text +'array' Keyword +'[' Punctuation +'VER_PLATFORM_WIN32s' Name +'.' Operator +'.' Operator +'VER_PLATFORM_WIN32_NT' Name +']' Punctuation +' ' Text +'of' Keyword +' ' Text +'string' Keyword +' ' Text +'=' Operator +'\n ' Text +'(' Punctuation +"'" Literal.String +'VER_PLATFORM_WIN32s' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'VER_PLATFORM_WIN32_WINDOWS' Literal.String +"'" Literal.String +',' Operator +' ' Text +"'" Literal.String +'VER_PLATFORM_WIN32_NT' Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'PlatformStrings' Name +'[' Punctuation +'Win32Platform' Name +']' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'FullOSInfo' Name.Function +':' Operator +' ' Text +'string' Keyword +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Format' Name.Builtin +'(' Punctuation +'\n ' Text +"'" Literal.String +'Platform: %s' Literal.String +"'" Literal.String +' ' Text +'+' Operator +' ' Text +'EOL' Name +' ' Text +'+' Operator +'\n ' Text +"'" Literal.String +'Version: %d.%d Build %d' Literal.String +"'" Literal.String +' ' Text +'+' Operator +' ' Text +'EOL' Name +' ' Text +'+' Operator +'\n ' Text +"'" Literal.String +'CSD: %s' Literal.String +"'" Literal.String +',' Operator +'\n ' Text +'[' Punctuation +'\n ' Text +'Win32PlatformStr' Name +',' Operator +'\n ' Text +'Win32MajorVersion' Name +',' Operator +' ' Text +'Win32MinorVersion' Name +',' Operator +' ' Text +'Win32BuildNumber' Name +',' Operator +'\n ' Text +'Win32CSDVersion' Name +'\n ' Text +']' Punctuation +'\n ' Text +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Win9x' Name.Function +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Win32Platform' Name +' ' Text +'=' Operator +' ' Text +'VER_PLATFORM_WIN32_WINDOWS' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'WinNT' Name.Function +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Win32Platform' Name +' ' Text +'=' Operator +' ' Text +'VER_PLATFORM_WIN32_NT' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'Win2000' Name.Function +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'(' Punctuation +'Win32Platform' Name +' ' Text +'=' Operator +' ' Text +'VER_PLATFORM_WIN32_NT' Name +')' Punctuation +'\n ' Text +'and' Keyword +' ' Text +'(' Punctuation +'Win32MajorVersion' Name +' ' Text +'=' Operator +' ' Text +'4' Literal.Number.Integer +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'WinXP' Name.Function +':' Operator +' ' Text +'Boolean' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'Win32MajorVersion' Name +' ' Text +'>' Operator +'=' Operator +' ' Text +'5' Literal.Number.Integer +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'initialization' Keyword +'\n ' Text +'MyDir' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'GetMyDir' Name +';' Operator +'\n\n' Text + +'end' Keyword +'.' Operator +'\n\n' Text + +'unit' Keyword +' ' Text +'FifoStream' Name +';' Operator +'\n\n' Text + +'interface' Keyword +'\n\n' Text + +'uses' Keyword +' ' Text +'Classes' Name +',' Operator +' ' Text +'windows' Name +',' Operator +' ' Text +'Dialogs' Name +';' Operator +'\n\n' Text + +'const' Keyword +'\n ' Text +'DefaultChunksize' Name +' ' Text +'=' Operator +' ' Text +'32768' Literal.Number.Integer +';' Operator +' ' Text +'// 32kb per chunk as default.' Comment.Single +'\n\n' Text + +'type' Keyword +'\n ' Text +'PMemChunk' Name +' ' Text +'=' Operator +' ' Text +'^' Operator +'TMemChunk' Name +';' Operator +'\n ' Text +'TMemChunk' Name +' ' Text +'=' Operator +' ' Text +'record' Keyword +'\n ' Text +'Filled' Name +':' Operator +' ' Text +'Longword' Keyword.Type +';' Operator +'\n ' Text +'Read' Name.Builtin +':' Operator +' ' Text +'Longword' Keyword.Type +';' Operator +'\n ' Text +'Data' Name +':' Operator +' ' Text +'pointer' Keyword.Type +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n ' Text +'TFifo' Name +' ' Text +'=' Operator +' ' Text +'class' Keyword +'\n ' Text +'private' Keyword.Pseudo +'\n ' Text +'FBuffers' Name +':' Operator +' ' Text +'TList' Name +';' Operator +'\n ' Text +'FChunksize' Name +':' Operator +' ' Text +'Longword' Keyword.Type +';' Operator +'\n ' Text +'FCritSect' Name +':' Operator +' ' Text +'TRTLCriticalSection' Name +';' Operator +'\n ' Text +'FIsWinNT' Name +':' Operator +' ' Text +'boolean' Keyword.Type +';' Operator +'\n ' Text +'FBytesInFifo' Name +':' Operator +' ' Text +'LongWord' Keyword.Type +';' Operator +'\n ' Text +'protected' Keyword.Pseudo +'\n ' Text +'function' Keyword +' ' Text +'GetBytesInFifo' Name.Function +':' Operator +' ' Text +'LongWord' Keyword.Type +';' Operator +'\n ' Text +'public' Keyword.Pseudo +'\n ' Text +'constructor' Keyword +' ' Text +'Create' Name.Function +';' Operator +'\n ' Text +'destructor' Keyword +' ' Text +'Destroy' Name.Function +';' Operator +' ' Text +'override' Keyword.Pseudo +';' Operator +'\n ' Text +'procedure' Keyword +' ' Text +'Write' Name.Function +'(' Punctuation +'Data' Name +':' Operator +' ' Text +'pointer' Keyword.Type +';' Operator +' ' Text +'Size' Name +':' Operator +' ' Text +'LongWord' Keyword.Type +')' Punctuation +';' Operator +'\n ' Text +'procedure' Keyword +' ' Text +'Read' Name.Function +'(' Punctuation +'Buff' Name +':' Operator +' ' Text +'pointer' Keyword.Type +';' Operator +' ' Text +'var' Keyword +' ' Text +'ReqSize' Name +':' Operator +' ' Text +'LongWord' Keyword.Type +')' Punctuation +';' Operator +'\n ' Text +'procedure' Keyword +' ' Text +'PeekData' Name.Function +'(' Punctuation +'Buff' Name +':' Operator +' ' Text +'pointer' Keyword.Type +';' Operator +' ' Text +'var' Keyword +' ' Text +'ReqSize' Name +':' Operator +' ' Text +'LongWord' Keyword.Type +')' Punctuation +';' Operator +'\n ' Text +'published' Keyword.Pseudo +'\n ' Text +'property' Keyword +' ' Text +'BytesInFifo' Name.Property +':' Operator +' ' Text +'LongWord' Keyword.Type +' ' Text +'read' Keyword.Pseudo +' ' Text +'FBytesInFifo' Name.Function +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n\n' Text + +'implementation' Keyword +'\n\n' Text + +'constructor' Keyword +' ' Text +'TFifo' Name.Class +'.' Operator +'Create' Name.Function +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'inherited' Keyword +';' Operator +'\n ' Text +'FBuffers' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'TList' Name +'.' Operator +'Create' Name +';' Operator +'\n ' Text +'// set default chunksize...' Comment.Single +'\n ' Text +'FChunksize' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'DefaultChunksize' Name +';' Operator +'\n ' Text +'InitializeCriticalSection' Name +'(' Punctuation +'FCritSect' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'destructor' Keyword +' ' Text +'TFifo' Name.Class +'.' Operator +'Destroy' Name.Function +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'I' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'EnterCriticalSection' Name +'(' Punctuation +'FCritSect' Name +')' Punctuation +';' Operator +'\n ' Text +'for' Keyword +' ' Text +'I' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'to' Keyword +' ' Text +'FBuffers' Name +'.' Operator +'count' Name +' ' Text +'-' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'do' Keyword +'\n ' Text +'begin' Keyword +'\n ' Text +'FreeMem' Name.Builtin +'(' Punctuation +'PMemChunk' Name +'(' Punctuation +'Fbuffers' Name +'[' Punctuation +'I' Name +'])' Punctuation +'.' Operator +'Data' Name +')' Punctuation +';' Operator +'\n ' Text +'Dispose' Keyword +'(' Punctuation +'PMemChunk' Name +'(' Punctuation +'Fbuffers' Name +'[' Punctuation +'I' Name +']))' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'FBuffers' Name +'.' Operator +'Clear' Name +';' Operator +'\n ' Text +'FBuffers' Name +'.' Operator +'Free' Name +';' Operator +'\n ' Text +'LeaveCriticalSection' Name +'(' Punctuation +'FCritSect' Name +')' Punctuation +';' Operator +'\n\n ' Text +'DeleteCriticalSection' Name +'(' Punctuation +'FCritSect' Name +')' Punctuation +';' Operator +'\n ' Text +'inherited' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'function' Keyword +' ' Text +'TFifo' Name.Class +'.' Operator +'GetBytesInFifo' Name.Function +':' Operator +' ' Text +'LongWord' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'Result' Name.Builtin.Pseudo +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'FBuffers' Name +'.' Operator +'Count' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'begin' Keyword +'\n ' Text +'exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +'\n ' Text +'else' Keyword +'\n ' Text +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'FBuffers' Name +'.' Operator +'Count' Name +' ' Text +'>' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'(' Punctuation +'FBuffers' Name +'.' Operator +'Count' Name +' ' Text +'-' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +' ' Text +'*' Operator +' ' Text +'FChunkSize' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'PMemChunk' Name +'(' Punctuation +'FBuffers' Name +'[' Punctuation +'Fbuffers' Name +'.' Operator +'Count' Name +' ' Text +'-' Operator +' ' Text +'1' Literal.Number.Integer +'])' Punctuation +'.' Operator +'Filled' Name +')' Punctuation +';' Operator +'\n ' Text +'Dec' Name.Builtin +'(' Punctuation +'Result' Name.Builtin.Pseudo +',' Operator +' ' Text +'PMemChunk' Name +'(' Punctuation +'FBuffers' Name +'[' Punctuation +'0' Literal.Number.Integer +'])' Punctuation +'.' Operator +'Read' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'TFifo' Name.Class +'.' Operator +'Write' Name.Function +'(' Punctuation +'Data' Name +':' Operator +' ' Text +'pointer' Keyword.Type +';' Operator +' ' Text +'Size' Name +':' Operator +' ' Text +'LongWord' Keyword.Type +')' Punctuation +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'Privpointer' Name +':' Operator +' ' Text +'pointer' Keyword.Type +';' Operator +'\n ' Text +'PrivSize' Name +':' Operator +' ' Text +'LongWord' Keyword.Type +';' Operator +'\n ' Text +'Chunk' Name +':' Operator +' ' Text +'PMemChunk' Name +';' Operator +'\n ' Text +'PosInChunk' Name +':' Operator +' ' Text +'pointer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'LongWord' Keyword.Type +'(' Punctuation +'Data' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'begin' Keyword +'\n ' Text +'// null pointer? somebody is trying to fool us, get out...' Comment.Single +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'EnterCriticalSection' Name +'(' Punctuation +'FCritSect' Name +')' Punctuation +';' Operator +'\n ' Text +'PrivPointer' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Data' Name +';' Operator +'\n ' Text +'PrivSize' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'// are already buffers there?' Comment.Single +'\n ' Text +'if' Keyword +' ' Text +'FBuffers' Name +'.' Operator +'count' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'begin' Keyword +'\n ' Text +'// is the last one of them not completely filled?' Comment.Single +'\n ' Text +'if' Keyword +' ' Text +'PMemChunk' Name +'(' Punctuation +'FBuffers' Name +'[' Punctuation +'FBuffers' Name +'.' Operator +'count' Name +' ' Text +'-' Operator +' ' Text +'1' Literal.Number.Integer +'])' Punctuation +'.' Operator +'filled' Name +' ' Text +'<' Operator +' ' Text +'FChunksize' Name +' ' Text +'then' Keyword +'\n ' Text +'// not completely filled, so fill up the buffer.' Comment.Single +'\n ' Text +'begin' Keyword +'\n ' Text +'Chunk' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'PMemChunk' Name +'(' Punctuation +'FBuffers' Name +'[' Punctuation +'FBuffers' Name +'.' Operator +'count' Name +' ' Text +'-' Operator +' ' Text +'1' Literal.Number.Integer +'])' Punctuation +';' Operator +'\n ' Text +'// fetch chunkdata.' Comment.Single +'\n ' Text +'PosInChunk' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Chunk' Name +'.' Operator +'Data' Name +';' Operator +'\n ' Text +'// move to current fill pos...' Comment.Single +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'LongWord' Keyword.Type +'(' Punctuation +'PosInChunk' Name +')' Punctuation +',' Operator +' ' Text +'Chunk' Name +'.' Operator +'Filled' Name +')' Punctuation +';' Operator +'\n ' Text +'// can we fill the chunk completely?' Comment.Single +'\n ' Text +'if' Keyword +' ' Text +'Size' Name +' ' Text +'>' Operator +' ' Text +'FChunksize' Name +' ' Text +'-' Operator +' ' Text +'Chunk' Name +'.' Operator +'Filled' Name +' ' Text +'then' Keyword +'\n ' Text +'begin' Keyword +'\n ' Text +'// yes we can.' Comment.Single +'\n ' Text +'Move' Name.Builtin +'(' Punctuation +'PrivPointer' Name +'^' Operator +',' Operator +' ' Text +'PosInChunk' Name +'^' Operator +',' Operator +' ' Text +'FChunksize' Name +' ' Text +'-' Operator +' ' Text +'Chunk' Name +'.' Operator +'Filled' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'PrivSize' Name +',' Operator +' ' Text +'FChunksize' Name +' ' Text +'-' Operator +' ' Text +'Chunk' Name +'.' Operator +'Filled' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'LongWord' Keyword.Type +'(' Punctuation +'PrivPointer' Name +')' Punctuation +',' Operator +' ' Text +'FChunksize' Name +' ' Text +'-' Operator +' ' Text +'Chunk' Name +'.' Operator +'Filled' Name +')' Punctuation +';' Operator +'\n ' Text +'Chunk' Name +'.' Operator +'Filled' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'FChunkSize' Name +';' Operator +'\n ' Text +'end' Keyword +'\n ' Text +'else' Keyword +'\n ' Text +'// we have to less data for filling the chunk completely,' Comment.Single +'\n ' Text +'// just put everything in.' Comment.Single +'\n ' Text +'begin' Keyword +'\n ' Text +'Move' Name.Builtin +'(' Punctuation +'PrivPointer' Name +'^' Operator +',' Operator +' ' Text +'PosInChunk' Name +'^' Operator +',' Operator +' ' Text +'Size' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'PrivSize' Name +',' Operator +' ' Text +'Size' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'Chunk' Name +'.' Operator +'Filled' Name +',' Operator +' ' Text +'Size' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'// as long as we have remaining stuff put it into new chunks.' Comment.Single +'\n ' Text +'while' Keyword +' ' Text +'(' Punctuation +'PrivSize' Name +' ' Text +'<' Operator +' ' Text +'Size' Name +')' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'begin' Keyword +'\n ' Text +'new' Keyword +'(' Punctuation +'Chunk' Name +')' Punctuation +';' Operator +'\n ' Text +'GetMem' Name.Builtin +'(' Punctuation +'Chunk' Name +'.' Operator +'Data' Name +',' Operator +' ' Text +'FChunksize' Name +')' Punctuation +';' Operator +'\n ' Text +'Chunk' Name +'.' Operator +'Read' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'// can we fill an entire chunk with the remaining data?' Comment.Single +'\n ' Text +'if' Keyword +' ' Text +'Privsize' Name +' ' Text +'+' Operator +' ' Text +'FChunksize' Name +' ' Text +'<' Operator +' ' Text +'Size' Name +' ' Text +'then' Keyword +'\n ' Text +'begin' Keyword +'\n ' Text +'// yes we can, so put the stuff in.' Comment.Single +'\n ' Text +'Move' Name.Builtin +'(' Punctuation +'Privpointer' Name +'^' Operator +',' Operator +' ' Text +'Chunk' Name +'.' Operator +'Data' Name +'^' Operator +',' Operator +' ' Text +'FChunksize' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'LongWord' Keyword.Type +'(' Punctuation +'PrivPointer' Name +')' Punctuation +',' Operator +' ' Text +'FChunksize' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'PrivSize' Name +',' Operator +' ' Text +'FChunksize' Name +')' Punctuation +';' Operator +'\n ' Text +'Chunk' Name +'.' Operator +'Filled' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'FChunksize' Name +';' Operator +'\n ' Text +'end' Keyword +'\n ' Text +'else' Keyword +' ' Text +'// we have to less data to fill the entire chunk, just put the remaining stuff in.' Comment.Single +'\n ' Text +'begin' Keyword +'\n ' Text +'Move' Name.Builtin +'(' Punctuation +'Privpointer' Name +'^' Operator +',' Operator +' ' Text +'Chunk' Name +'.' Operator +'Data' Name +'^' Operator +',' Operator +' ' Text +'Size' Name +' ' Text +'-' Operator +' ' Text +'Privsize' Name +')' Punctuation +';' Operator +'\n ' Text +'Chunk' Name +'.' Operator +'Filled' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Size' Name +' ' Text +'-' Operator +' ' Text +'Privsize' Name +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'PrivSize' Name +',' Operator +' ' Text +'Size' Name +' ' Text +'-' Operator +' ' Text +'Privsize' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'Fbuffers' Name +'.' Operator +'Add' Name +'(' Punctuation +'Chunk' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'if' Keyword +' ' Text +'Size' Name +' ' Text +'<' Operator +'>' Operator +' ' Text +'Privsize' Name +' ' Text +'then' Keyword +'\n ' Text +'Showmessage' Name +'(' Punctuation +"'" Literal.String +'miscalculation in TFifo.write' Literal.String +"'" Literal.String +')' Punctuation +';' Operator +'\n ' Text +'FBytesInFifo' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'GetBytesInFifo' Name +';' Operator +'\n ' Text +'LeaveCriticalSection' Name +'(' Punctuation +'FCritSect' Name +')' Punctuation +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'procedure' Keyword +' ' Text +'TFifo' Name.Class +'.' Operator +'Read' Name.Function +'(' Punctuation +'Buff' Name +':' Operator +' ' Text +'pointer' Keyword.Type +';' Operator +' ' Text +'var' Keyword +' ' Text +'ReqSize' Name +':' Operator +' ' Text +'LongWord' Keyword.Type +')' Punctuation +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'PrivSize' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n ' Text +'Privpos' Name +':' Operator +' ' Text +'pointer' Keyword.Type +';' Operator +'\n ' Text +'Chunk' Name +':' Operator +' ' Text +'PMemChunk' Name +';' Operator +'\n ' Text +'ChunkPos' Name +':' Operator +' ' Text +'pointer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'LongWord' Keyword.Type +'(' Punctuation +'Buff' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'begin' Keyword +'\n ' Text +'// null pointer? somebody is trying to fool us, get out...' Comment.Single +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'EnterCriticalSection' Name +'(' Punctuation +'FCritSect' Name +')' Punctuation +';' Operator +'\n ' Text +'PrivSize' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'Privpos' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Buff' Name +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'FBuffers' Name +'.' Operator +'Count' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'do' Keyword +'\n ' Text +'begin' Keyword +'\n ' Text +'Chunk' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'PMemChunk' Name +'(' Punctuation +'FBuffers' Name +'[' Punctuation +'0' Literal.Number.Integer +'])' Punctuation +';' Operator +'\n ' Text +'ChunkPos' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Chunk' Name +'.' Operator +'data' Name +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'LongWord' Keyword.Type +'(' Punctuation +'ChunkPos' Name +')' Punctuation +',' Operator +' ' Text +'Chunk' Name +'.' Operator +'Read' Name +')' Punctuation +';' Operator +'\n ' Text +'// does the remaining part of the chunk fit into the buffer?' Comment.Single +'\n ' Text +'if' Keyword +' ' Text +'PrivSize' Name +' ' Text +'+' Operator +' ' Text +'(' Punctuation +'Chunk' Name +'.' Operator +'Filled' Name +' ' Text +'-' Operator +' ' Text +'Chunk' Name +'.' Operator +'read' Name +')' Punctuation +' ' Text +'<' Operator +' ' Text +'ReqSize' Name +' ' Text +'then' Keyword +'\n ' Text +'begin' Keyword +' ' Text +'// yep, it fits' Comment.Single +'\n ' Text +'Move' Name.Builtin +'(' Punctuation +'ChunkPos' Name +'^' Operator +',' Operator +' ' Text +'Privpos' Name +'^' Operator +',' Operator +' ' Text +'Chunk' Name +'.' Operator +'Filled' Name +' ' Text +'-' Operator +' ' Text +'Chunk' Name +'.' Operator +'read' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'PrivSize' Name +',' Operator +' ' Text +'Chunk' Name +'.' Operator +'Filled' Name +' ' Text +'-' Operator +' ' Text +'Chunk' Name +'.' Operator +'read' Name +')' Punctuation +';' Operator +'\n ' Text +'FreeMem' Name.Builtin +'(' Punctuation +'Chunk' Name +'.' Operator +'Data' Name +')' Punctuation +';' Operator +'\n ' Text +'Dispose' Keyword +'(' Punctuation +'Chunk' Name +')' Punctuation +';' Operator +'\n ' Text +'FBuffers' Name +'.' Operator +'Delete' Name +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +'\n ' Text +'else' Keyword +' ' Text +"// remaining part didn't fit, get as much as we can and increment the" Comment.Single +'\n ' Text +'// read attribute.' Comment.Single +'\n ' Text +'begin' Keyword +'\n ' Text +'Move' Name.Builtin +'(' Punctuation +'ChunkPos' Name +'^' Operator +',' Operator +' ' Text +'Privpos' Name +'^' Operator +',' Operator +' ' Text +'ReqSize' Name +' ' Text +'-' Operator +' ' Text +'PrivSize' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'Chunk' Name +'.' Operator +'read' Name +',' Operator +' ' Text +'ReqSize' Name +' ' Text +'-' Operator +' ' Text +'PrivSize' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'PrivSize' Name +',' Operator +' ' Text +'ReqSize' Name +' ' Text +'-' Operator +' ' Text +'PrivSize' Name +')' Punctuation +';' Operator +'\n ' Text +"// as we filled the buffer, we'll have to break here." Comment.Single +'\n ' Text +'break' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'FBytesInFifo' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'GetBytesInFifo' Name +';' Operator +'\n ' Text +'LeaveCriticalSection' Name +'(' Punctuation +'FCritSect' Name +')' Punctuation +';' Operator +'\n ' Text +'ReqSize' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'PrivSize' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'// read Data from Stream without removing it from the Stream...' Comment.Single +'\n\n' Text + +'procedure' Keyword +' ' Text +'TFifo' Name.Class +'.' Operator +'PeekData' Name.Function +'(' Punctuation +'Buff' Name +':' Operator +' ' Text +'pointer' Keyword.Type +';' Operator +' ' Text +'var' Keyword +' ' Text +'ReqSize' Name +':' Operator +' ' Text +'LongWord' Keyword.Type +')' Punctuation +';' Operator +'\n' Text + +'var' Keyword +'\n ' Text +'PrivSize' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n ' Text +'Privpos' Name +':' Operator +' ' Text +'pointer' Keyword.Type +';' Operator +'\n ' Text +'Chunk' Name +':' Operator +' ' Text +'PMemChunk' Name +';' Operator +'\n ' Text +'ChunkPos' Name +':' Operator +' ' Text +'pointer' Keyword.Type +';' Operator +'\n ' Text +'ChunkNr' Name +':' Operator +' ' Text +'Integer' Keyword.Type +';' Operator +'\n' Text + +'begin' Keyword +'\n ' Text +'if' Keyword +' ' Text +'LongWord' Keyword.Type +'(' Punctuation +'Buff' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'then' Keyword +'\n ' Text +'begin' Keyword +'\n ' Text +'// null pointer? somebody is trying to fool us, get out...' Comment.Single +'\n ' Text +'Exit' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'EnterCriticalSection' Name +'(' Punctuation +'FCritSect' Name +')' Punctuation +';' Operator +'\n ' Text +'PrivSize' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'Privpos' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Buff' Name +';' Operator +'\n ' Text +'ChunkNr' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Operator +'\n ' Text +'while' Keyword +' ' Text +'FBuffers' Name +'.' Operator +'Count' Name +' ' Text +'>' Operator +' ' Text +'ChunkNr' Name +' ' Text +'do' Keyword +'\n ' Text +'begin' Keyword +'\n ' Text +'Chunk' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'PMemChunk' Name +'(' Punctuation +'FBuffers' Name +'[' Punctuation +'ChunkNr' Name +'])' Punctuation +';' Operator +'\n ' Text +'ChunkPos' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'Chunk' Name +'.' Operator +'data' Name +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'LongWord' Keyword.Type +'(' Punctuation +'ChunkPos' Name +')' Punctuation +',' Operator +' ' Text +'Chunk' Name +'.' Operator +'Read' Name +')' Punctuation +';' Operator +'\n ' Text +'// does the remaining part of the chunk fit into the buffer?' Comment.Single +'\n ' Text +'if' Keyword +' ' Text +'PrivSize' Name +' ' Text +'+' Operator +' ' Text +'(' Punctuation +'Chunk' Name +'.' Operator +'Filled' Name +' ' Text +'-' Operator +' ' Text +'Chunk' Name +'.' Operator +'read' Name +')' Punctuation +' ' Text +'<' Operator +' ' Text +'ReqSize' Name +' ' Text +'then' Keyword +'\n ' Text +'begin' Keyword +' ' Text +'// yep, it fits' Comment.Single +'\n ' Text +'Move' Name.Builtin +'(' Punctuation +'ChunkPos' Name +'^' Operator +',' Operator +' ' Text +'Privpos' Name +'^' Operator +',' Operator +' ' Text +'Chunk' Name +'.' Operator +'Filled' Name +' ' Text +'-' Operator +' ' Text +'Chunk' Name +'.' Operator +'read' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'PrivSize' Name +',' Operator +' ' Text +'Chunk' Name +'.' Operator +'Filled' Name +' ' Text +'-' Operator +' ' Text +'Chunk' Name +'.' Operator +'read' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'ChunkNr' Name +')' Punctuation +';' Operator +'\n ' Text +'end' Keyword +'\n ' Text +'else' Keyword +' ' Text +"// remaining part didn't fit, get as much as we can and increment the" Comment.Single +'\n ' Text +'// read attribute.' Comment.Single +'\n ' Text +'begin' Keyword +'\n ' Text +'Move' Name.Builtin +'(' Punctuation +'ChunkPos' Name +'^' Operator +',' Operator +' ' Text +'Privpos' Name +'^' Operator +',' Operator +' ' Text +'ReqSize' Name +' ' Text +'-' Operator +' ' Text +'PrivSize' Name +')' Punctuation +';' Operator +'\n ' Text +'Inc' Name.Builtin +'(' Punctuation +'PrivSize' Name +',' Operator +' ' Text +'ReqSize' Name +' ' Text +'-' Operator +' ' Text +'PrivSize' Name +')' Punctuation +';' Operator +'\n ' Text +"// as we filled the buffer, we'll have to break here." Comment.Single +'\n ' Text +'break' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'end' Keyword +';' Operator +'\n ' Text +'LeaveCriticalSection' Name +'(' Punctuation +'FCritSect' Name +')' Punctuation +';' Operator +'\n ' Text +'ReqSize' Name +' ' Text +':' Operator +'=' Operator +' ' Text +'PrivSize' Name +';' Operator +'\n' Text + +'end' Keyword +';' Operator +'\n\n' Text + +'end' Keyword +'.' Operator +'\n' Text |