<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name= "Pascal" version= "1.22" kateversion= "2.5.9" section= "Sources" extensions= "*.pp;*.pas;*.p" mimetype= "text/x-pascal" author= "Unnamed people and Liu Sizhuang(oldherl@gmail.com)" >
<highlighting >
<list name= "keywords" >
<item > and </item>
<item > array </item>
<item > asm </item>
<item > case </item>
<item > const </item>
<item > div </item>
<item > do </item>
<item > downto </item>
<item > else </item>
<item > file </item>
<item > for </item>
<item > function </item>
<item > goto </item>
<item > if </item>
<item > in </item>
<item > label </item>
<item > mod </item>
<item > nil </item>
<item > not </item>
<item > of </item>
<item > operator </item>
<item > or </item>
<item > packed </item>
<item > procedure </item>
<item > program </item>
<item > record </item>
<item > repeat </item>
<item > set </item>
<item > then </item>
<item > to </item>
<item > type </item>
<item > unit </item>
<item > until </item>
<item > uses </item>
<item > var </item>
<item > while </item>
<item > with </item>
<item > xor </item>
<item > at </item>
<item > automated </item>
<item > break </item>
<item > continue </item>
<item > dispinterface </item>
<item > dispose </item>
<item > exit </item>
<item > false </item>
<item > finalization </item>
<item > initialization </item>
<item > library </item>
<item > new </item>
<item > published </item>
<item > resourcestring </item>
<item > self </item>
<item > true </item>
</list>
<list name= "ISO/Delphi Extended" >
<item > abstract </item>
<item > as </item>
<item > bindable </item>
<item > constructor </item>
<item > destructor </item>
<item > except </item>
<item > export </item>
<item > finally </item>
<item > import </item>
<item > implementation </item>
<item > inherited </item>
<item > inline </item>
<item > interface </item>
<item > is </item>
<item > module </item>
<item > on </item>
<item > only </item>
<item > otherwise </item>
<item > override </item>
<item > private </item>
<item > property </item>
<item > protected </item>
<item > public </item>
<item > read </item>
<item > qualified </item>
<item > raise </item>
<item > restricted </item>
<item > shl </item>
<item > shr </item>
<item > threadvar </item>
<item > try </item>
<item > virtual </item>
<item > write </item>
</list>
<list name= "types" >
<item > Integer </item>
<item > Cardinal </item>
<item > ShortInt </item>
<item > SmallInt </item>
<item > LongInt </item>
<item > Int64 </item>
<item > Byte </item>
<item > Word </item>
<item > LongWord </item>
<item > DWord </item>
<item > QWord </item>
<item > Char </item>
<item > AnsiChar </item>
<item > WideChar </item>
<item > Boolean </item>
<item > ByteBool </item>
<item > WordBool </item>
<item > LongBool </item>
<item > Single </item>
<item > Double </item>
<item > Extended </item>
<item > Comp </item>
<item > Currency </item>
<item > Real </item>
<item > Real48 </item>
<item > String </item>
<item > ShortString </item>
<item > AnsiString </item>
<item > WideString </item>
<item > Pointer </item>
<item > Variant</item>
<item > File </item>
<item > Text </item>
</list>
<list name= "attention" >
<item > FIXME </item>
<item > TODO </item>
<item > NOTE </item>
<item > ### </item>
</list>
<contexts >
<context attribute= "Normal Text" lineEndContext= "#stay" name= "Normal" >
<RegExpr attribute= "Keyword" context= "#stay" String= "\b(begin|case|record)(?=(\{[^}]*(\}|$)|\(\*.*(\*\)|$))*([\s]|$|//))" insensitive= "true" beginRegion= "Region1" />
<RegExpr attribute= "ISO/Delphi Extended" context= "#stay" String= "\b((object|class)(?=(\(.*\))?(\{[^}]*(\}|$)|\(\*.*(\*\)|$))*;?([\s]|$|//))|try(?=(\{[^}]*(\}|$)|\(\*.*(\*\)|$))*([\s]|$|//)))" insensitive= "true" beginRegion= "Region1" />
<RegExpr attribute= "Keyword" context= "#stay" String= "\bend(?=((\{[^}]*(\}|$)|\(\*.*(\*\)|$))*)([.;\s]|$)|//|$)" insensitive= "true" endRegion= "Region1" />
<keyword attribute= "Keyword" context= "#stay" String= "keywords" />
<keyword attribute= "ISO/Delphi Extended" context= "#stay" String= "ISO/Delphi Extended" />
<keyword attribute= "Type" context= "#stay" String= "types" />
<Float attribute= "Number" context= "#stay" />
<Int attribute= "Number" context= "#stay" />
<DetectChar attribute= "Hex" context= "Hex" char= "$" />
<DetectChar attribute= "String" context= "CharNum" char= "#" />
<DetectChar attribute= "String" context= "String" char= "'" />
<StringDetect attribute= "Directive" context= "Prep1" String= "(*$" />
<Detect2Chars attribute= "Directive" context= "Prep2" char= "{" char1= "$" />
<DetectChar attribute= "Comment" context= "Comment1" char= "{" beginRegion= "Region2" />
<Detect2Chars attribute= "Comment" context= "Comment2" char= "(" char1= "*" beginRegion= "Region3" />
<Detect2Chars attribute= "Comment" context= "Comment3" char= "/" char1= "/" />
</context>
<context attribute= "String" lineEndContext= "#pop" name= "CharNum" >
<DetectChar attribute= "Hex" context= "HexCharNum" char= "$" />
<RegExpr String= "[^0-9]" context= "#pop" />
</context>
<context attribute= "Hex" lineEndContext= "#pop" name= "HexCharNum" >
<RegExpr String= "[^a-fA-F0-9]" context= "#pop#pop" />
</context>
<context attribute= "Hex" lineEndContext= "#pop" name= "Hex" >
<RegExpr String= "[^a-fA-F0-9]" context= "#pop" />
</context>
<context attribute= "String" lineEndContext= "#pop" name= "String" >
<DetectChar attribute= "String" context= "#pop" char= "'" />
</context>
<context attribute= "Directive" lineEndContext= "#pop" name= "Prep1" >
<Detect2Chars attribute= "Directive" context= "#pop" char= "*" char1= ")" />
</context>
<context attribute= "Directive" lineEndContext= "#pop" name= "Prep2" >
<DetectChar attribute= "Directive" context= "#pop" char= "}" />
</context>
<context attribute= "Comment" lineEndContext= "#stay" name= "Comment1" >
<keyword attribute= "Alert" context= "#stay" String= "attention" />
<DetectChar attribute= "Comment" context= "#pop" char= "}" endRegion= "Region2" />
</context>
<context attribute= "Comment" lineEndContext= "#stay" name= "Comment2" >
<keyword attribute= "Alert" context= "#stay" String= "attention" />
<Detect2Chars attribute= "Comment" context= "#pop" char= "*" char1= ")" endRegion= "Region3" />
</context>
<context attribute= "Comment" lineEndContext= "#pop" name= "Comment3" >
<keyword attribute= "Alert" context= "#stay" String= "attention" />
</context>
</contexts>
<itemDatas >
<itemData name= "Normal Text" defStyleNum= "dsNormal" />
<itemData name= "Hex" defStyleNum= "dsBaseN" />
<itemData name= "Keyword" defStyleNum= "dsKeyword" />
<itemData name= "ISO/Delphi Extended" defStyleNum= "dsKeyword" color= "#000080" />
<itemData name= "Type" defStyleNum= "dsDataType" />
<itemData name= "Number" defStyleNum= "dsDecVal" />
<itemData name= "String" defStyleNum= "dsString" />
<itemData name= "Directive" defStyleNum= "dsOthers" />
<itemData name= "Comment" defStyleNum= "dsComment" />
<itemData name= "Alert" defStyleNum= "dsAlert" />
</itemDatas>
</highlighting>
<general >
<keywords casesensitive= "0" />
<comments >
<comment name= "singleLine" start= "//" />
<comment name= "multiLine" start= "{" end= "}" />
</comments>
</general>
</language>