<?xml version="1.0" encoding="utf-8"?>

<!-- 
Falcon syntax highlighting
Written by Ezra Altahan
Created 16/09/2016 | Updated 16/10/2016
Version 1.0

hello@exr.be
https://github.com/ei
-->

<SyntaxDefinition name="Falcon" extensions=".fal">

    <Environment> 
        <Default color="Black" bgcolor="#FFFFFF"/>
        <Selection color="Black" bgcolor="#C3C3FF"/>
        <LineNumbers color="Gray" bgcolor="#FFFFFF"/>
        <CaretMarker color="#F0F0F1"/>
        <VRuler color="#E0E0E5"/>
        
        <FoldLine color="#A0A0A0" bgcolor="#FFFFFF"/>
        <FoldMarker color="Black" bgcolor="#FFFFFF"/>
        <SelectedFoldLine color="Black" bgcolor="#FFFFFF"/>
        
        <EOLMarkers color="#CACAD2"/>
        <SpaceMarkers color="#B6B6C0"/>
        <TabMarkers color="#B6B6C0"/>
        <InvalidLines color="#B6B6C0"/>
    </Environment>
        
    <Properties>
        <Property name="LineComment" value="//"/>
        <Property name="BlockCommentBegin" value="/*"/>
        <Property name="BlockCommentEnd" value="*/"/>
    </Properties>
        
    <Digits name="Digits" color="#BF382A"/>

    <RuleSets>
        <RuleSet ignorecase="false">
                        
            <Delimiters>()[]{},:.@`=;+-*/%~ &amp;|^&gt;&lt;</Delimiters>
            
            <Span name="LineComment" stopateol="true" color="Green" bold="false" italic="false">
                <Begin>//</Begin>
            </Span>
                        
            <Span name="BlockComment" stopateol="false" color="Green" bold="false" italic="false">
                <Begin>/*</Begin>
                <End>*/</End>
            </Span>
                        
            <Span name="String" stopateol="false"  color="#808080" bold="false" italic="false">
                <Begin>"</Begin>
                <End>"</End>
            </Span>
            
            <Span name="Char" stopateol="false" color="#808080" bold="false" italic="false">
                <Begin>'</Begin>
                <End>'</End>
            </Span>
            
            <Span name="Preprocessor" stopateol="true" color="Brown" bold="false" italic="false">
                <Begin>#!</Begin>
            </Span>
            
            <MarkFollowing color="Black" bold="false" italic="true">class</MarkFollowing>
            <MarkFollowing color="Black" bold="false" italic="false">function</MarkFollowing>
            
            <KeyWords name="Keywords1" color="Blue" bold="false" italic ="false">
                <Key word="attributes"/>
                <Key word="break"/>
                <Key word="case"/>
                <Key word="catch"/>
                <Key word="class"/>
                <Key word="const"/>
                <Key word="continue"/>
                <Key word="def"/>
                <Key word="default"/>
                <Key word="directive"/>
                <Key word="dropping"/>
                <Key word="elif"/>
                <Key word="else"/>
                <Key word="end"/>
                <Key word="enum"/>
                <Key word="export"/>
                <Key word="false"/>
                <Key word="for"/>
                <Key word="forfirst"/>
                <Key word="forlast"/>
                <Key word="formiddle"/>
                <Key word="from"/>
                <Key word="function"/>
                <Key word="give"/>
                <Key word="global"/>
                <Key word="if"/>
                <Key word="init"/>
                <Key word="innerfunc"/>
                <Key word="lambda"/>
                <Key word="launch"/>
                <Key word="load"/>
                <Key word="loop"/>
                <Key word="object"/>
                <Key word="pass"/>
                <Key word="raise"/>
                <Key word="return"/>
                <Key word="select"/>
                <Key word="self"/>
                <Key word="sender"/>
                <Key word="static"/>
                <Key word="switch"/>
                <Key word="true"/>
                <Key word="try"/>
                <Key word="while"/>
            </KeyWords>
            
            <KeyWords name="Keywords2" color="DarkViolet" bold="false" italic ="false">
                <Key word="all"/>
                <Key word="allp"/>
                <Key word="and"/>
                <Key word="any"/>
                <Key word="anyp"/>
                <Key word="as"/>
                <Key word="cascade"/>
                <Key word="choice"/>
                <Key word="dolist"/>
                <Key word="eq"/>
                <Key word="eval"/>
                <Key word="has"/>
                <Key word="hasnt"/>
                <Key word="iff"/>
                <Key word="in"/>
                <Key word="lit"/>
                <Key word="nil"/>
                <Key word="not"/>
                <Key word="notin"/>
                <Key word="or"/>
                <Key word="provides"/>
                <Key word="to"/>
                <Key word="xmap"/>
            </KeyWords>
            
            <KeyWords name="Keywords3" color="Teal" bold="false" italic ="false">
                <Key word="CloneError"/>
                <Key word="CodeError"/>
                <Key word="Error"/>
                <Key word="InterruptedError"/>
                <Key word="IoError"/>
                <Key word="List"/>
                <Key word="MathError"/>
                <Key word="ParamError"/>
                <Key word="ParseError"/>
                <Key word="RangeError"/>
                <Key word="SyntaxError"/>
                <Key word="TraceStep"/>
                <Key word="TypeError"/>
            </KeyWords>
        </RuleSet>
    </RuleSets>
</SyntaxDefinition>
