SYNTAX 
FILE REFERENCE
TAGS and 
ATTRIBUTES
TAG 
NAME                             
TYPE                       
<Language 
... 
> 
         
Root/Required
Description:
The 
root tag of the XML document 
, marks the start and end of the syntax description 
file.
Only 
1 Occurrence of this tag per document is allowed.       
Example:               
                
<?xml 
version="1.0" 
encoding="utf-8" 
?>
       
<Language 
Name="Visual 
C#" 
Startblock="CS 
Code">
              
...
       
</Language>
                                
Attributes:
ATTRIBUTE 
NAME         
                
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
Name                                       
Required  Name of the 
syntax/language                                                 
""
·          
Startblock                                
                
Required  Name reference to a 
<Block> tag                                           
""
Child 
tags:
TAG 
NAME                     
·          
<FileTypes>
·          
<Block>
·          
<Style>
TAG 
NAME                             
TYPE
<FileTypes>                 
Optional
Description:
Optional 
tag that contains a list of file types associated with this syntax
                                
Example:               
       
<Language 
Name="Visual 
C#" 
Startblock="CS 
Code">
              
<FileTypes>
                     
<FileType 
Extension=".cs" Name="C# code file"/>
              
</FileTypes>
       
...
Attributes:
ATTRIBUTE 
NAME         
                
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
-                               
Child 
tags:
TAG 
NAME                     
·          
<FileType>
TAG 
NAME                             
TYPE
<FileType 
... 
>              
Min 1 Occurrence
Description:
This 
tag associates a name and a file extension with this 
syntax.
NOTE: 
this is only an internal association, this will not 
affect the Windows file type associations.
Example:               
       
<Language 
Name="Visual 
C#" 
Startblock="CS 
Code">
              
<FileTypes>
                     
<FileType 
Extension=".cs" Name="C# code file"/>
              
</FileTypes>
       
...
                                
Attributes:
ATTRIBUTE 
NAME         
                
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
Name                                       
Required  Name of a file type 
associated with this syntax                     
""
·          
Extension                                
                
Required  File of a file type 
associated with this syntax                        
""             
Child 
tags:
TAG 
NAME                     
·          
-
TAG 
NAME                             
TYPE
<Block 
... 
>                     
Min 1 Occurrence
Description:
A 
Block describes the behaviour of a section of text , 
e.g. a code section , a comment section or a string 
section.
The 
Block tag describes what scopes , keywords , operators 
and child blocks that may appear in a block.
                                
Example:
                
...
       <Block Name="CS Char" Style="CS 
String" IsMultiline="false">
              
<Scope Start="'" End="'"  EscapeChar="\" Style="CS String" 
/>
       </Block>
       
...
Attributes:
ATTRIBUTE 
NAME         
                
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
Name                                       
Required  Name of the 
Block                                                                   
""
·          
Style                                        
Required  Name reference to a 
<Style> tag                                            
""
·          
IsMultiline                 
                
Optional   Determines if 
the block may span multiple rows                     
"false"
·          
BackColor                                
Optional   Sets a named web color for the block background                                
“”
·          
TerminateChildren                   
Optional   Sets if child blocks should end 
when this blocks end scope 
“false”
Is 
found inside a childblock
Child 
tags:
TAG 
NAME                     
·          
<Scope>
·          
<Bracket>
·          
<Keywords>
·          
<Operators>
·          
<ChildBlocks>
TAG 
NAME                             
TYPE
<Scope 
... 
>                   
Optional for start block/Min 1 Occurrence for child 
blocks
Description:
The 
Scope tag defines the start and end patterns of a block.
Multiple 
scopes are allowed for a block , 
e.g.:
PHP 
might have <? and <?PHP as scope patterns.
VB 
might have ' and REM as comment start 
scopes.
NOTE: 
Scopes also enables bracket matching for the start and end patterns.
(See also: 
<Bracket>)
Example:
       
...
       <Block Name="CS Char" Style="CS 
String" IsMultiline="false">
              
<Scope Start="'" End="'"  EscapeChar="\" Style="CS String" 
/>
       
</Block>
       
...
                                
Attributes:
ATTRIBUTE 
NAME                 
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
Start                                        
Required  Scope start 
pattern                                                                 
""
·          
StartIsKeyWord                       
Optional   Sets if the 
start pattern should use keyword behaviour  
      
"false"
·          
StartIsComplex                        
Optional   Sets if the 
start pattern should use RegEx matching              
"false"     
·          
End                                          
Required  Scope end 
pattern                                                                  
""
·          
EndIsKeyWord                        
Optional   Sets if the 
end pattern should use keyword behaviour         
"false"
·          
EndIsComplex                          
Optional   Sets if the 
end pattern should use RegEx matching               
"false"     
·          
EndIsSeparator                       
Optional   Sets if the 
end pattern should render a separator line           
"false"
·          
Style                                        
Required  Name reference to a 
<Style> tag                                            
""
·          
PatternStyle                             
Optional   <Style> 
to be applied to the scope start/end pattern              
""
·          
Text                                         
Optional   Text to 
display in a collapsed/folded section                          
""
·          
EscapeChar                            
Optional   Escape 
char/pattern (e.g. "\" for c#)                                      
""
·          
SpawnBlockOnStart                               
Optional   Name Reference to a <Block> 
tag to start directly after
This blocks 
start pattern is found
Child 
tags:
TAG 
NAME                     
·          
-
TAG 
NAME                             
TYPE
<Bracket 
... 
>                
Optional
Description:
The 
Bracket tag defines the start and end patterns for a bracket 
matching.
NOTE: 
bracket matching is also applied on scope patterns, the 
Bracket tag is only useful when you do not want to trigger a folding 
section.
(See also: 
<Scope>)
Example:                               
       
...
       <Block Name="CS Code" Style="CS Code" IsMultiline="true">
              
<Scope Start="{" End="}" Style="CS Scope" Text="{...}" CauseIndent="true" />
              
<Scope Start="#if" End="#endif" Style="CS Region" 
Text="#if...endif"  
/>
              
<Scope Start="#region" End="#endregion" Style="CS Region" 
Text="" DefaultExpanded="false" />
              
<Bracket Start="(" End=")" Style="CS Code" />
              
<Bracket Start="[" End="]" Style="CS Code" />
       
...
Attributes:
ATTRIBUTE 
NAME         
                
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
Start                                        
Required  Bracket match start 
pattern                                                    
""
·          
StartIsKeyWord                       
Optional   Sets if the 
start pattern should use keyword behaviour        
"false"
·          
StartIsComplex                        
Optional   Sets if the 
start pattern should use RegEx matching              
"false"     
·          
End                                          
Required  Bracket match end 
pattern                                                      
""
·          
EndIsKeyWord                        
Optional   Sets if the 
end pattern should use keyword behaviour         
"false"
·          
EndIsComplex                          
Optional   Sets if the 
end pattern should use RegEx matching               
"false"     
·          
EndIsSeparator                       
Optional   Sets if the 
end pattern should render a separator line           
"false"
·          
Style                                        
Required  Name reference to a 
<Style> tag                                            
""
·          
Text                                         
Optional   Text to 
display in a collapsed/folded section                          
""
                                
Child 
tags:
TAG 
NAME                     
·          
-
TAG 
NAME                             
TYPE
<Keywords>            
                
Optional
Description:
Optional 
tag that contains a list of pattern groups.
NOTE: 
pattern groups contained in the Keywords tag are always treated as keywords, 
meaning they are only tokenised when surrounded by separator chars.
(See also: 
<Operators>)
                                
Example:
       
...
       <Keywords>
              
<PatternGroup 
Name="Keywords" Style="CS 
Keyword" CaseSensitive="true">
                     
<Patterns>
                     
abstract base break byte case catch checked 
class const continue 
                     
default delegate do value
                     
                     
...
                           
                     
virtual
                     
while
                     
</Patterns>
              
</PatternGroup>
              
<PatternGroup 
Name="Numbers" Style="CS 
Number">
                     
<Pattern Text="(0x[0-9a-fA-F]+)" 
IsComplex="true" />
                     
<Pattern Text="([0-9]+)" IsComplex="true" />
              
</PatternGroup>
       </Keywords>
       
...
Attributes:
ATTRIBUTE 
NAME         
                
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
-
Child 
tags:
TAG 
NAME                     
·          
<PatternGroup>
TAG 
NAME                             
TYPE
<PatternGroup 
... 
>Min 1 
Occurrence
Description:
Describes 
a group of either keywords or operators.
NOTE: 
Operators in this context means separator chars such as :;()[] and whitespace , text patterns 
that are considered to be operators
in 
syntaxes such as C++ , e.g. the word "new" are considered to be keywords in this 
context.
Example:
       
...
       
<Keywords>
              
<PatternGroup 
Name="Keywords" Style="CS 
Keyword" CaseSensitive="true">
                     
<Patterns>
                     
abstract base break byte case catch checked 
class const continue 
                     
default delegate do value
                     
                     
...
                     
                     
virtual
                     
while
                     
</Patterns>
              
</PatternGroup>
       
...
                                
                                
Attributes:
ATTRIBUTE 
NAME         
                
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
Name                                       
Required  Name of the pattern 
group                                                      
""
·          
Style                                        
Required  Name reference to a 
<Style> tag                                            
""
·          
CaseSensitive                         
Optional   Sets if the 
pattern group members are case sensitive           
"false"     
·          
NormalizeCase                        
Optional   Sets if the 
pattern group members should be auto cased      
"false"
Child 
tags:
TAG 
NAME                     
·          
<Pattern>
·          
<Patterns>
TAG NAME                             
TYPE
<Pattern>                        
Optional
Description:
Describes 
a simple (String) or complex (RegEx) pattern that 
should be tokenised by the parser.
Example:
       
...
       <PatternGroup 
Name="Numbers" Style="CS 
Number">
              
<Pattern Text="(0x[0-9a-fA-F]+)" IsComplex="true" />
              
<Pattern Text="([0-9]+)"          
IsComplex="true" />
       </PatternGroup>
       
...
                                
Attributes:
ATTRIBUTE 
NAME                 
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
Text                                         
Required  Pattern                                                                                     
""                             
·          
IsComplex                                
Optional   Sets if the 
pattern should use RegEx matching                      
"false"     
·          
IsSeparator                             
Optional   Sets if the 
pattern should render a separator line                  
"false"     
·          
Category                 
                
Optional   Assigns a category to a pattern.                                            
""
Categories 
can be used to trigger mouse events for patterns. 
eg. you might want to display a "hand" cursor 
for
patterns 
assigned to the "URL" category
Child 
tags:
TAG 
NAME                     
·          
-
TAG 
NAME                             
TYPE
<Patterns>                     
Optional
Description:
A 
whitespace separated list of simple 
patterns.
Example:
...
       <PatternGroup 
Name="Keywords" Style="CS 
Keyword" CaseSensitive="true">
              
<Patterns>
                     
abstract base break byte case catch checked 
class const continue 
                     
default delegate do value
                     
virtual
                     
while
              
</Patterns>
       </PatternGroup>
       
...
                                
Attributes:
ATTRIBUTE 
NAME         
                
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
-
Child 
tags:
TAG 
NAME                     
·          
-
TAG 
NAME                             
TYPE
<Operators>                 
Optional
Description:
Optional 
tag that contains a list of pattern groups.
NOTE: 
pattern groups contained in the Operators tag are always treated as operators , meaning they are always tokenised no matter what 
chars that surround them
(See also: 
<Keywords>)
Example:
       
...
       
<Operators>
              
<PatternGroup 
name="Operators" 
Style="CS 
Operator">
                     
<Patterns>
                           
. 
* / [ ]
                     
</Pattern>
              
</PatternGroup>
       </Operators>
       
...
                                
Attributes:
ATTRIBUTE 
NAME         
                
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
-
Child 
tags:
TAG 
NAME                     
·          
<PatternGroup>
TAG 
NAME                             
TYPE
<ChildBlocks>           
Optional
Description:
Optional 
tag that contains a list of name references to child blocks
(See also: 
<Child>)
Example:
       
...
              
<ChildBlocks>
                     
<Child Name="CS XML Comment" 
/>
                     
<Child Name="CS Multiline Comment" 
/>
                     
<Child Name="CS Singleline Comment" 
/>
                     
<Child Name="CS String" />
                     
<Child Name="CS Char" />
                     
<Child Name="CS Literal 
String" />
                     
<Child Name="CS Literal 
Char" />
                     
<Child Name="CS Code" />
              
</ChildBlocks>
       </Block>
       
...
                                
Attributes:
ATTRIBUTE 
NAME         
                
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
-
Child 
tags:
TAG 
NAME                     
·          
<Child>
TAG 
NAME                             
TYPE
<Child 
... 
>                      
Min 1 Occurrence
Description:
Tag 
that describes a parent-child relation from the containing block to the named 
block reference.
(See also: 
<ChildBlocks>)
Example:
       
...
              
<ChildBlocks>
                     
<Child Name="CS XML Comment" 
/>
                     
<Child Name="CS Multiline Comment" 
/>
                     
<Child Name="CS Singleline Comment" 
/>
                     
<Child Name="CS String" />
                     
<Child Name="CS Char" />
                     
<Child Name="CS Literal 
String" />
                     
<Child Name="CS Literal 
Char" />
                     
<Child Name="CS Code" />
              
</ChildBlocks>
       </Block>
       
...
                                
Attributes:
ATTRIBUTE 
NAME         
                
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
Name                                       
Required  Name reference to a 
<Block> tag                                           
""
Child 
tags:
TAG 
NAME                     
·          
-
TAG 
NAME                             
TYPE
<Style 
... 
>                     
Min 1 Occurrence
Description:
Tag 
that defines text styles.
                
Example:
...
<Style 
       
Name="CS 
Operator" 
ForeColor="Red" 
BackColor="" 
Bold="false" 
Italic="false" 
Underline="false" 
/>
<Style 
       
Name="CS 
Keyword" 
ForeColor="Blue" 
BackColor="" 
Bold="true"  
Italic="false" 
Underline="false" 
/>
<Style 
       
Name="CS 
Datatype"
ForeColor="DarkBlue" 
BackColor="" 
Bold="true"  
Italic="false" 
Underline="false" 
/>
</Language>
...
                                
Attributes:
ATTRIBUTE 
NAME         
                
TYPE       
ATTRIBUTE VALUE                                                               
DEFAULT VALUE
·          
Name                                       
Required  Name of the 
style                                                                    
""
·          
ForeColor                                
                
Required  Style forecolor (named web color)                                         
""
·          
BackColor                                
Required  Style backcolor (named web color)                                        
""
·          
Bold                                         
Required  Style bold font                                                                         
""
·          
Italic                                         
Required  Style italic 
font                                                                         
""
·          
Underline                 
                
Required  Style underline 
font                                                                 
""
                                
Child 
tags:
TAG NAME                     
·          
-