name: OCamllex fileTypes:

scopeName: source.ocamllex repository:

actions: 
  patterns: 
  - name: meta.action.ocamllex
    endCaptures: 
      "1": 
        name: punctuation.definition.action.end.ocamllex
    begin: "[^\\']({)"
    beginCaptures: 
      "1": 
        name: punctuation.definition.action.begin.ocamllex
    end: (})
    patterns: 
    - include: source.ocaml
comments: 
  patterns: 
  - name: comment.block.ocaml
    captures: 
      "1": 
        name: comment.block.empty.ocaml
      "2": 
        name: comment.block.empty.ocaml
    match: \(\*(?:(\*)| ( )\*)\)
  - name: comment.block.ocaml
    begin: \(\*
    end: \*\)
    patterns: 
    - include: "#comments"
  - name: comment.block.string.quoted.double.ocaml
    begin: (?=[^\\])(")
    end: "\""
    patterns: 
    - name: comment.block.string.constant.character.escape.ocaml
      match: \\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\])
match-patterns: 
  patterns: 
  - name: meta.pattern.sub-pattern.ocamllex
    endCaptures: 
      "1": 
        name: punctuation.definition.sub-pattern.end.ocamllex
    begin: (\()
    beginCaptures: 
      "1": 
        name: punctuation.definition.sub-pattern.begin.ocamllex
    end: (\))
    patterns: 
    - include: "#match-patterns"
  - name: entity.name.type.pattern.reference.stupid-goddamn-hack.ocamllex
    match: "[a-z][a-zA-Z0-9'_]"
  - name: keyword.other.pattern.ocamllex
    match: \bas\b
  - name: constant.language.eof.ocamllex
    match: eof
  - name: constant.language.universal-match.ocamllex
    match: _
  - name: meta.pattern.character-class.ocamllex
    endCaptures: 
      "1": 
        name: punctuation.definition.character-class.end.ocamllex
    begin: (\[)(\^?)
    beginCaptures: 
      "1": 
        name: punctuation.definition.character-class.begin.ocamllex
      "2": 
        name: punctuation.definition.character-class.negation.ocamllex
    end: (])(?!\')
    patterns: 
    - name: punctuation.separator.character-class.range.ocamllex
      match: "-"
    - include: "#chars"
  - name: keyword.operator.pattern.modifier.ocamllex
    match: \*|\+|\?
  - name: keyword.operator.pattern.alternation.ocamllex
    match: \|
  - include: "#chars"
  - include: "#strings"
strings: 
  patterns: 
  - name: string.quoted.double.ocamllex
    endCaptures: 
      "1": 
        name: punctuation.definition.string.end.ocaml
    begin: (?=[^\\])(")
    beginCaptures: 
      "1": 
        name: punctuation.definition.string.begin.ocaml
    end: (")
    patterns: 
    - name: punctuation.separator.string.ignore-eol.ocaml
      match: \\$[ \t]*
    - name: constant.character.string.escape.ocaml
      match: \\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\])
    - name: constant.character.regexp.escape.ocaml
      match: \\[\|\(\)1-9$^.*+?\[\]]
    - name: invalid.illegal.character.string.escape
      match: \\(?!(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\]|[\|\(\)1-9$^.*+?\[\]]|$[ \t]*))(?:.)
chars: 
  patterns: 
  - name: constant.character.ocamllex
    captures: 
      "1": 
        name: punctuation.definition.char.begin.ocamllex
      "4": 
        name: punctuation.definition.char.end.ocamllex
    match: (')([^\\]|\\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\]))(')

uuid: 007E5263-8E0D-4BEF-B0E1-F01AE32590E8 foldingStartMarker: “{” patterns:

foldingStopMarker: “}” keyEquivalent: ^~O