<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>name</key>
    <string>leo</string>
    <key>scopeName</key>
    <string>source.leo</string>
    <key>scope</key>
    <string>source.leo</string>
    <key>fileTypes</key>
    <array>
      <string>leo</string>
    </array>
    <key>extension</key>
    <array>
      <string>leo</string>
    </array>
    <key>patterns</key>
    <array>
      <dict>
        <key>include</key>
        <string>#function_declaration</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#import_file</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#program_file</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#program_keyword</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#block_comment</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#line_comment</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#string_literal</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#integer_literal</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#built-in_core_assign</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#boolean_constant</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#import_keyword</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#control_keyword</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#storage_type_public</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#storage_type_private</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#storage_type_constant</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#storage_type_const</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#storage_type_record</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#storage_type_let</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#storage_type_mapping</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#inside_braces</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#type_params</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#function_parameters</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#console_methods</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#script_keyword</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#conditional_statement</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#variable_declaration</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#loop_definition</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#return_type</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#statement_return</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#function_call</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#mapping_declaration</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#async_keyword</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#function_keyword</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#struct_keyword</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#transition_keyword</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#inline_keyword</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#record_strucut_definition</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#circuit_static_call</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#circuit_call</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#core_types</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#address_literal</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#invoking_attribute</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#method_name_call</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#future_type</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#future_type_parameters</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#annotation</string>
      </dict>
      <dict>
        <key>comment</key>
        <string>Context Annotation</string>
        <key>name</key>
        <string>support.other.annotation.leo</string>
        <key>match</key>
        <string>@[a-zA-Z][a-zA-Z0-9_]*</string>
      </dict>
    </array>
    <key>repository</key>
    <dict>
      <key>import_file</key>
      <dict>
        <key>name</key>
        <string>entity.name.type.import.leo</string>
        <key>comment</key>
        <string>Import file</string>
        <key>match</key>
        <string>(?&lt;=\bimport\b)\s+\b\w+\b\s*\.\s*\b\w+\b\s*(?=;)</string>
      </dict>
      <key>program_file</key>
      <dict>
        <key>name</key>
        <string>entity.name.type.program.leo</string>
        <key>comment</key>
        <string>Program file</string>
        <key>match</key>
        <string>\b(\w+)\s*\.\s*(aleo)\b</string>
      </dict>
      <key>circuit_static_call</key>
      <dict>
        <key>comment</key>
        <string>Circuit staitc call(Threads)</string>
        <key>match</key>
        <string>(\w+)\s*::\s*(\w+)</string>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>entity.name.struct.leo</string>
          </dict>
          <key>2</key>
          <dict>
            <key>name</key>
            <string>entity.name.function.static.leo</string>
          </dict>
        </dict>
      </dict>
      <key>function_call</key>
      <dict>
        <key>comment</key>
        <string>Function calls(Threads)</string>
        <key>match</key>
        <string>\b([a-zA-Z_]\w*)\s*(?=(::\s*\[[^\]]*\])?\s*\()</string>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>entity.name.function.call.leo</string>
          </dict>
        </dict>
      </dict>
      <key>annotation</key>
      <dict>
        <key>comment</key>
        <string>Context Annotation</string>
        <key>begin</key>
        <string>(@[a-zA-Z_][a-zA-Z0-9_]*)\s*\(</string>
        <key>beginCaptures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>support.other.annotation.leo</string>
          </dict>
        </dict>
        <key>end</key>
        <string>\)</string>
        <key>patterns</key>
        <array>
          <dict>
            <key>name</key>
            <string>meta.annotation.arguments.leo</string>
            <key>patterns</key>
            <array>
              <dict>
                <key>include</key>
                <string>#string_literal</string>
              </dict>
            </array>
          </dict>
        </array>
      </dict>
      <key>conditional_statement</key>
      <dict>
        <key>comment</key>
        <string>If or Else If Statement</string>
        <key>begin</key>
        <string>(?&lt;=^|\s)(if|else\s*if)\s+\w+</string>
        <key>end</key>
        <string>\}</string>
        <key>beginCaptures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>keyword.control.leo</string>
          </dict>
        </dict>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#conditional_statement</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#statement_return</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#variable_declaration</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#block_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#line_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#core_types</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#integer_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#address_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#built-in_core_assign</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#boolean_constant</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#control_keyword</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_public</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_private</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_constant</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_record</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_let</string>
          </dict>
        </array>
      </dict>
      <key>circuit_call</key>
      <dict>
        <key>comment</key>
        <string>Circuit call(Threads)</string>
        <key>begin</key>
        <string>(?&lt;=^|\s|\()([a-zA-Z_]\w*)\s*\{</string>
        <key>end</key>
        <string>\}</string>
        <key>beginCaptures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>entity.name.struct.leo</string>
          </dict>
        </dict>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#circuit_call</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#circuit_attribute</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#inside_braces</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#block_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#line_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#core_types</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#integer_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#address_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#built-in_core_assign</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#boolean_constant</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#control_keyword</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_public</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_private</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_constant</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_record</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_let</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#string_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#invoking_attribute</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#console_methods</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type_parameters</string>
          </dict>
        </array>
      </dict>
      <key>record_strucut_definition</key>
      <dict>
        <key>comment</key>
        <string>Record definition</string>
        <key>begin</key>
        <string>(?:(?&lt;=\brecord\b)|(?&lt;=\bstruct\b))\s+\b\w+\b\s*\{</string>
        <key>end</key>
        <string>\}</string>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#circuit_attribute</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#inside_braces</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#core_types</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#integer_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#built-in_core_assign</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#boolean_constant</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#control_keyword</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_public</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_private</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_constant</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_let</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#string_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#block_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#line_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#invoking_attribute</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#type_params</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#circuit_static_call</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#circuit_call</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#function_parameters</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#console_methods</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type_parameters</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#custom_type_identifier</string>
          </dict>
        </array>
      </dict>
      <key>circuit_definition_const_parameters</key>
      <dict>
        <key>comment</key>
        <string>Circuit parameters (after 'struct' or 'record')</string>
        <key>begin</key>
        <string>\b(?:(?&lt;=\bstruct\b)|(?&lt;=\brecord\b))\s+(\w+)::\[</string>
        <key>end</key>
        <string>\]</string>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>variable.other.leo</string>
          </dict>
        </dict>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#integer_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#core_types</string>
          </dict>
        </array>
      </dict>
      <key>const_parameters</key>
      <dict>
        <key>comment</key>
        <string>Const parameters</string>
        <key>begin</key>
        <string>\b(\w+)::\[</string>
        <key>end</key>
        <string>\]</string>
        <key>beginCaptures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>entity.name.type.custom.leo</string>
          </dict>
        </dict>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#integer_literal</string>
          </dict>
        </array>
      </dict>
      <key>custom_type_identifier</key>
      <dict>
        <key>comment</key>
        <string>Custom type identifiers(Threads)</string>
        <key>match</key>
        <string>\b([a-zA-Z_]\w*)(?=\s*[\[,;)=\{])</string>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>entity.name.type.custom.leo</string>
          </dict>
        </dict>
      </dict>
      <key>address_literal</key>
      <dict>
        <key>comment</key>
        <string>Address</string>
        <key>name</key>
        <string>constant.other.address.leo</string>
        <key>match</key>
        <string>\baleo1[A-z0-9]*</string>
      </dict>
      <key>invoking_attribute</key>
      <dict>
        <key>comment</key>
        <string>Invoking circuit attribute</string>
        <key>match</key>
        <string>(?&lt;=\.)(?&lt;!\.\.)(\w+(?=\.)|\b\w+\b(?!\())</string>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>entity.other.attribute.name</string>
          </dict>
        </dict>
      </dict>
      <key>function_declaration</key>
      <dict>
        <key>comment</key>
        <string>Function declaration</string>
        <key>name</key>
        <string>function.declaration.leo</string>
        <key>match</key>
        <string>(?:(?&lt;=\btransition\b)|(?&lt;=\bfunction\b)|(?&lt;=\binline\b))\s+(\w+)\s*\(</string>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>entity.name.function.leo</string>
          </dict>
          <key>2</key>
          <dict>
            <key>name</key>
            <string>entity.name.function.leo</string>
          </dict>
        </dict>
      </dict>
      <key>function_parameters</key>
      <dict>
        <key>comment</key>
        <string>Function parameters</string>
        <key>begin</key>
        <string>(?:(async)\s*(function|transition|inline))\s+(\w+)\s*\(|(?:(function|transition|inline))\s+(\w+)\s*\(</string>
        <key>end</key>
        <string>\)</string>
        <key>beginCaptures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>storage.type.async.leo</string>
          </dict>
          <key>2</key>
          <dict>
            <key>name</key>
            <string>storage.type.function.leo</string>
          </dict>
          <key>3</key>
          <dict>
            <key>name</key>
            <string>entity.name.function.leo</string>
          </dict>
          <key>4</key>
          <dict>
            <key>name</key>
            <string>storage.type.function.leo</string>
          </dict>
          <key>5</key>
          <dict>
            <key>name</key>
            <string>entity.name.function.leo</string>
          </dict>
        </dict>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#function_attribute</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#integer_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#boolean_constant</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#core_types</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_public</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_private</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_constant</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_record</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#line_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#block_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type_parameters</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#custom_type_identifier</string>
          </dict>
        </array>
      </dict>
      <key>function_attribute</key>
      <dict>
        <key>comment</key>
        <string>Function Attribute</string>
        <key>match</key>
        <string>\b(\w*)\b\s*:</string>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>variable.parameter.leo</string>
          </dict>
        </dict>
      </dict>
      <key>circuit_attribute</key>
      <dict>
        <key>comment</key>
        <string>Circuit Attribute </string>
        <key>match</key>
        <string>\b([a-zA-Z_]\w*)\s*:(?!:)</string>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>entity.other.attribute.name</string>
          </dict>
        </dict>
      </dict>
      <key>block_comment</key>
      <dict>
        <key>comment</key>
        <string>Block comment</string>
        <key>name</key>
        <string>comment.block.leo</string>
        <key>begin</key>
        <string>/\*</string>
        <key>end</key>
        <string>\*/</string>
      </dict>
      <key>line_comment</key>
      <dict>
        <key>comment</key>
        <string>Single-line comment</string>
        <key>name</key>
        <string>comment.line.double-slash.leo</string>
        <key>begin</key>
        <string>//</string>
        <key>end</key>
        <string>$</string>
      </dict>
      <key>integer_literal</key>
      <dict>
        <key>comment</key>
        <string>Integer literal (decimal)</string>
        <key>name</key>
        <string>constant.numeric.decimal.leo</string>
        <key>match</key>
        <string>\b([0-9][0-9_]*|0b[0-1_]+|0o[0-7_]+|0x[0-9A-F_]+)([ui](8|16|32|64|128))?\b</string>
      </dict>
      <key>built-in_core_assign</key>
      <dict>
        <key>comment</key>
        <string>Built-in/core assign</string>
        <key>name</key>
        <string>storage.type.assign.leo</string>
        <key>match</key>
        <string>\b(([0-9][0-9_]*)(group|field|scalar))</string>
      </dict>
      <key>boolean_constant</key>
      <dict>
        <key>comment</key>
        <string>Boolean constant</string>
        <key>name</key>
        <string>constant.language.boolean.leo</string>
        <key>match</key>
        <string>\b(true|false)\b</string>
      </dict>
      <key>import_keyword</key>
      <dict>
        <key>comment</key>
        <string>Import keyword</string>
        <key>name</key>
        <string>keyword.control.import.leo</string>
        <key>match</key>
        <string>\b(import)\b</string>
      </dict>
      <key>control_keyword</key>
      <dict>
        <key>comment</key>
        <string>Control keyword</string>
        <key>name</key>
        <string>keyword.control.leo</string>
        <key>match</key>
        <string>\b(else|if|in|for|as)\b</string>
      </dict>
      <key>storage_type_let</key>
      <dict>
        <key>comment</key>
        <string>Storage type let</string>
        <key>name</key>
        <string>storage.type.let.leo</string>
        <key>match</key>
        <string>\b(let)\b</string>
      </dict>
      <key>storage_type_mapping</key>
      <dict>
        <key>comment</key>
        <string>Storage type mapping</string>
        <key>name</key>
        <string>storage.type.mapping.leo</string>
        <key>match</key>
        <string>\b(mapping)\b</string>
      </dict>
      <key>storage_type_public</key>
      <dict>
        <key>comment</key>
        <string>Storage type public</string>
        <key>name</key>
        <string>storage.type.public.leo</string>
        <key>match</key>
        <string>\b(public)\b</string>
      </dict>
      <key>storage_type_private</key>
      <dict>
        <key>comment</key>
        <string>Storage type private</string>
        <key>name</key>
        <string>storage.type.private.leo</string>
        <key>match</key>
        <string>\b(private)\b</string>
      </dict>
      <key>storage_type_constant</key>
      <dict>
        <key>comment</key>
        <string>Storage type constant</string>
        <key>name</key>
        <string>storage.type.constant.leo</string>
        <key>match</key>
        <string>\b(constant)\b</string>
      </dict>
      <key>storage_type_const</key>
      <dict>
        <key>comment</key>
        <string>Storage type const</string>
        <key>name</key>
        <string>storage.type.const.leo</string>
        <key>match</key>
        <string>\b(const)\b</string>
      </dict>
      <key>storage_type_record</key>
      <dict>
        <key>comment</key>
        <string>Storage type record</string>
        <key>name</key>
        <string>storage.type.record.leo</string>
        <key>match</key>
        <string>\b(record)\b</string>
      </dict>
      <key>string_literal</key>
      <dict>
        <key>comment</key>
        <string>Double-quote string literal</string>
        <key>name</key>
        <string>string.quoted.double.leo</string>
        <key>begin</key>
        <string>"</string>
        <key>end</key>
        <string>"</string>
      </dict>
      <key>function_keyword</key>
      <dict>
        <key>comment</key>
        <string>Storage type function</string>
        <key>name</key>
        <string>storage.type.function.leo</string>
        <key>match</key>
        <string>\b(function)\b</string>
      </dict>
      <key>struct_keyword</key>
      <dict>
        <key>comment</key>
        <string>Storage type struct</string>
        <key>name</key>
        <string>storage.type.struct.leo</string>
        <key>match</key>
        <string>\b(struct)\b</string>
      </dict>
      <key>program_keyword</key>
      <dict>
        <key>comment</key>
        <string>Storage type program</string>
        <key>name</key>
        <string>storage.type.program.leo</string>
        <key>match</key>
        <string>\b(program)\b</string>
      </dict>
      <key>async_keyword</key>
      <dict>
        <key>comment</key>
        <string>Storage type async</string>
        <key>match</key>
        <string>\b(async)\b\s+(?:(constructor)\s*\(|(transition|function|inline)\s+\w+\s*\()</string>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>storage.type.async.leo</string>
          </dict>
          <key>2</key>
          <dict>
            <key>name</key>
            <string>storage.type.constructor.leo</string>
          </dict>
          <key>3</key>
          <dict>
            <key>name</key>
            <string>storage.type.transition.leo</string>
          </dict>
          <key>4</key>
          <dict>
            <key>name</key>
            <string>storage.type.function.leo</string>
          </dict>
          <key>5</key>
          <dict>
            <key>name</key>
            <string>storage.type.inline.leo</string>
          </dict>
        </dict>
      </dict>
      <key>transition_keyword</key>
      <dict>
        <key>comment</key>
        <string>Storage type transition</string>
        <key>name</key>
        <string>storage.type.transition.leo</string>
        <key>match</key>
        <string>\b(transition)\b</string>
      </dict>
      <key>script_keyword</key>
      <dict>
        <key>comment</key>
        <string>Storage type script</string>
        <key>name</key>
        <string>storage.type.script.leo</string>
        <key>match</key>
        <string>\b(script)\b</string>
      </dict>
      <key>inline_keyword</key>
      <dict>
        <key>comment</key>
        <string>Storage type inline</string>
        <key>name</key>
        <string>storage.type.inline.leo</string>
        <key>match</key>
        <string>\b(inline)\b</string>
      </dict>
      <key>core_types</key>
      <dict>
        <key>comment</key>
        <string>Built-in/core type</string>
        <key>name</key>
        <string>storage.type.core.leo</string>
        <key>match</key>
        <string>\b(bool|field|scalar|u8|u16|u32|u64|u128|i8|i16|i32|i64|i128|string|address|signature|group|integer)\b</string>
      </dict>
      <key>loop_definition</key>
      <dict>
        <key>comment</key>
        <string>For loop definition</string>
        <key>begin</key>
        <string>(?:(?&lt;=\bfor\b))</string>
        <key>end</key>
        <string>(?=\{)</string>
        <key>beginCaptures</key>
        <dict>
          <key>0</key>
          <dict>
            <key>name</key>
            <string>keyword.control.leo</string>
          </dict>
        </dict>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#control_keyword</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#core_types</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type_parameters</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#integer_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#built-in_core_assign</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#boolean_constant</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#address_literal</string>
          </dict>
        </array>
      </dict>
      <key>variable_declaration</key>
      <dict>
        <key>comment</key>
        <string>Variable declaration</string>
        <key>begin</key>
        <string>(?:(?&lt;=\blet|const\b))\s*\w+\s*\:\s*</string>
        <key>end</key>
        <string>\=</string>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#const_parameters</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#core_types</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#integer_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#block_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#line_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type_parameters</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#custom_type_identifier</string>
          </dict>
        </array>
      </dict>
      <key>mapping_declaration</key>
      <dict>
        <key>comment</key>
        <string>Mapping declaration</string>
        <key>begin</key>
        <string>(?&lt;=\bmapping\b)\s+\w+\:s*</string>
        <key>end</key>
        <string>$</string>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#core_types</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#integer_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type_parameters</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#block_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#line_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#custom_type_identifier</string>
          </dict>
        </array>
      </dict>
      <key>return_type</key>
      <dict>
        <key>comment</key>
        <string>Return type</string>
        <key>begin</key>
        <string>-&gt;</string>
        <key>end</key>
        <string>(?={)</string>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#const_parameters</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#core_types</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_public</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_private</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_constant</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#integer_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#block_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#line_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type_parameters</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#custom_type_identifier</string>
          </dict>
        </array>
      </dict>
      <key>statement_return</key>
      <dict>
        <key>comment</key>
        <string>Statement return</string>
        <key>begin</key>
        <string>\b(return)\b</string>
        <key>end</key>
        <string>;</string>
        <key>beginCaptures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>keyword.control.leo</string>
          </dict>
        </dict>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#integer_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#control_keyword</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#core_types</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#address_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#built-in_core_assign</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#boolean_constant</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#block_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#line_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#method_name_call</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#invoking_attribute</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#circuit_call</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#function_call</string>
          </dict>
        </array>
      </dict>
      <key>statement_for_iterator_type</key>
      <dict>
        <key>comment</key>
        <string>Statement for iterator type</string>
        <key>begin</key>
        <string>(?&lt;=for)\s*\w+:\s*</string>
        <key>end</key>
        <string>(?=in)</string>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#core_types</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type_parameters</string>
          </dict>
        </array>
      </dict>
      <key>console_methods</key>
      <dict>
        <key>comment</key>
        <string>Console methods</string>
        <key>match</key>
        <string>\b(assert|assert_eq|assert_neq)\b</string>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>support.function.console.leo</string>
          </dict>
        </dict>
      </dict>
      <key>method_name_call</key>
      <dict>
        <key>comment</key>
        <string>Method name call</string>
        <key>match</key>
        <string>\w+\s*\.\s*([a-zA-Z][a-zA-Z0-9_]*)\s*</string>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>entity.name.struct.attribute.leo</string>
          </dict>
        </dict>
      </dict>
      <key>future_type</key>
      <dict>
        <key>comment</key>
        <string>Storage type future</string>
        <key>match</key>
        <string>\b(Future)\b</string>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>storage.type.future.leo</string>
          </dict>
        </dict>
      </dict>
      <key>future_type_parameters</key>
      <dict>
        <key>comment</key>
        <string>Parameters of future type</string>
        <key>begin</key>
        <string>(?&lt;=Future)\s*(\&lt;)</string>
        <key>end</key>
        <string>(\&gt;)</string>
        <key>beginCaptures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>storage.type.future.angle.brackets.leo</string>
          </dict>
        </dict>
        <key>endCaptures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>storage.type.future.angle.brackets.leo</string>
          </dict>
        </dict>
        <key>patterns</key>
        <array>
          <dict>
            <key>begin</key>
            <string>(Fn)</string>
            <key>end</key>
            <string>(\))</string>
            <key>beginCaptures</key>
            <dict>
              <key>1</key>
              <dict>
                <key>name</key>
                <string>storage.type.future.leo</string>
              </dict>
            </dict>
            <key>endCaptures</key>
            <dict>
              <key>1</key>
              <dict>
                <key>name</key>
                <string>storage.type.future.parantesis.leo</string>
              </dict>
            </dict>
            <key>patterns</key>
            <array>
              <dict>
                <key>begin</key>
                <string>(\()</string>
                <key>end</key>
                <string>(?=\))</string>
                <key>beginCaptures</key>
                <dict>
                  <key>1</key>
                  <dict>
                    <key>name</key>
                    <string>storage.type.future.parantesis.leo</string>
                  </dict>
                </dict>
                <key>patterns</key>
                <array>
                  <dict>
                    <key>include</key>
                    <string>#core_types</string>
                  </dict>
                  <dict>
                    <key>include</key>
                    <string>#integer_literal</string>
                  </dict>
                  <dict>
                    <key>include</key>
                    <string>#future_type</string>
                  </dict>
                  <dict>
                    <key>include</key>
                    <string>#future_type_parameters</string>
                  </dict>
                </array>
              </dict>
            </array>
          </dict>
        </array>
      </dict>
      <key>inside_braces</key>
      <dict>
        <key>comment</key>
        <string>Inside braces (sub-rule for use in function)</string>
        <key>name</key>
        <string>punctuation.braces.leo</string>
        <key>begin</key>
        <string>\{</string>
        <key>end</key>
        <string>\}</string>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#conditional_statement</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#control_keyword</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#variable_declaration</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#loop_definition</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#return_type</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#statement_return</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#function_call</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#mapping_declaration</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#function_parameters</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#function_declaration</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#async_keyword</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#function_keyword</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#struct_keyword</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#program_keyword</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#transition_keyword</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#script_keyword</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#inline_keyword</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#record_strucut_definition</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_mapping</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#import_file</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#program_file</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#inside_braces</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#block_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#line_comment</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#integer_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#circuit_static_call</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#circuit_call</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#core_types</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#address_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#built-in_core_assign</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#boolean_constant</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_public</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_private</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_constant</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_const</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_record</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#storage_type_let</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#string_literal</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#invoking_attribute</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#console_methods</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#type_params</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#method_name_call</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#future_type_parameters</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#annotation</string>
          </dict>
          <dict>
            <key>comment</key>
            <string>Context Annotation</string>
            <key>name</key>
            <string>support.other.annotation.leo</string>
            <key>match</key>
            <string>@[a-zA-Z][a-zA-Z0-9_]*</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#const_parameters</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#circuit_definition_const_parameters</string>
          </dict>
        </array>
      </dict>
    </dict>
  </dict>
</plist>