<commit_before>prelude = require './prelude'
pragmas = require './pragmas'
{ balanced, guarded, floatPattern, controlKeywords, otherKeywords } = require './util'

module.exports=
  block_comment:
    patterns: [
        name: 'comment.block.haddock.haskell'
        begin: /\{-\s*[|^]/
        end: /-\}/
        applyEndPatternLast: 1
        beginCaptures:
          0: name: 'punctuation.definition.comment.haddock.haskell'
        endCaptures:
          0: name: 'punctuation.definition.comment.haddock.haskell'
        patterns: [
            include: '#block_comment'
        ]
      ,
        name: 'comment.block.haskell'
        begin: /\{-/
        end: /-\}/
        applyEndPatternLast: 1
        beginCaptures:
          0: name: 'punctuation.definition.comment.block.start.haskell'
        endCaptures:
          0: name: 'punctuation.definition.comment.block.end.haskell'
        patterns: [
            include: '#block_comment'
        ]
    ]
  comments:
    patterns: [
        begin: /({maybeBirdTrack}[ \t]+)?(?=--+\s+[|^])/
        end: /(?!\G)/
        patterns: [
            name: 'comment.line.double-dash.haddock.haskell'
            begin: /(--+)\s+([|^])/
            end: /$/
            beginCaptures:
              1: name: 'punctuation.definition.comment.haskell'
              2: name: 'punctuation.definition.comment.haddock.haskell'
        ]
      ,
        ###
        Operators may begin with -- as long as they are not
        entirely composed of - characters. This means comments can't be
        immediately followed by an allowable operator character.
        ###
        begin: /({maybeBirdTrack}[ \t]+)?(?=--+(?!{operatorChar}))/
        end: /(?!\G)/
        patterns: [
            name: 'comment.line.double-dash.haskell'
            begin: /--/
            end: /$/
            beginCaptures:
              0: name: 'punctuation.definition.comment.haskell'
        ]
      ,
        include: '#block_comment'
    ]
  characters:
    patterns: [
        {match: '{escapeChar}', name: 'constant.character.escape.haskell'}
        {match: '{octalChar}', name: 'constant.character.escape.octal.haskell'}
        {match: '{hexChar}', name: 'constant.character.escape.hexadecimal.haskell'}
        {match: '{controlChar}', name: 'constant.character.escape.control.haskell'}
      ]
  module_exports:
    name: 'meta.declaration.exports.haskell'
    begin: /\(/
    end: /\)/
    applyEndPatternLast: 1
    patterns: [
        include: '#comments'
      ,
        include: '#c_preprocessor'
      ,
        begin: /{lb}(module){rb}/
        end: /{lb}({className}){rb}/
        beginCaptures:
          1: name: 'keyword.other.haskell'
        endCaptures:
          1: name: 'support.other.module.haskell'
        patterns: [
            {include: '#invalid'}
        ]
      ,
        include: '#function_name'
      ,
        include: '#type_name'
      ,
        include: '#comma'
      ,
        name: 'meta.other.constructor-list.haskell'
        begin: /{rb}\s*\(/
        end: /\)/
        patterns: [
          { include: '#comments' }
          { include: '#c_preprocessor' }
          { include: '#type_ctor' }
          { include: '#attribute_name' }
          { include: '#comma' }
          {
            match: /\.\./
            name: 'keyword.operator.wildcard.haskell'
          }
          {include: '#infix_op'}
        ]
      ,
        include: '#infix_op'
    ]
  module_name:
    name: 'support.other.module.haskell'<commit_msg>Fix #125<commit_after>prelude = require './prelude'
pragmas = require './pragmas'
{ balanced, guarded, floatPattern, controlKeywords, otherKeywords } = require './util'

module.exports=
  block_comment:
    patterns: [
        name: 'comment.block.haddock.haskell'
        begin: /\{-\s*[|^]/
        end: /-\}/
        applyEndPatternLast: 1
        beginCaptures:
          0: name: 'punctuation.definition.comment.haddock.haskell'
        endCaptures:
          0: name: 'punctuation.definition.comment.haddock.haskell'
        patterns: [
            include: '#block_comment'
        ]
      ,
        name: 'comment.block.haskell'
        begin: /\{-/
        end: /-\}/
        applyEndPatternLast: 1
        beginCaptures:
          0: name: 'punctuation.definition.comment.block.start.haskell'
        endCaptures:
          0: name: 'punctuation.definition.comment.block.end.haskell'
        patterns: [
            include: '#block_comment'
        ]
    ]
  comments:
    patterns: [
        begin: /({maybeBirdTrack}[ \t]+)?(?=--+\s+[|^])/
        end: /(?!\G)/
        patterns: [
            name: 'comment.line.double-dash.haddock.haskell'
            begin: /(--+)\s+([|^])/
            end: /$/
            beginCaptures:
              1: name: 'punctuation.definition.comment.haskell'
              2: name: 'punctuation.definition.comment.haddock.haskell'
        ]
      ,
        ###
        Operators may begin with -- as long as they are not
        entirely composed of - characters. This means comments can't be
        immediately followed by an allowable operator character.
        ###
        begin: /({maybeBirdTrack}[ \t]+)?(?=--+(?!{operatorChar}))/
        end: /(?!\G)/
        patterns: [
            name: 'comment.line.double-dash.haskell'
            begin: /--/
            end: /$/
            beginCaptures:
              0: name: 'punctuation.definition.comment.haskell'
        ]
      ,
        include: '#block_comment'
    ]
  characters:
    patterns: [
        {match: '{escapeChar}', name: 'constant.character.escape.haskell'}
        {match: '{octalChar}', name: 'constant.character.escape.octal.haskell'}
        {match: '{hexChar}', name: 'constant.character.escape.hexadecimal.haskell'}
        {match: '{controlChar}', name: 'constant.character.escape.control.haskell'}
      ]
  module_exports:
    name: 'meta.declaration.exports.haskell'
    begin: /\(/
    end: /\)/
    applyEndPatternLast: 1
    patterns: [
        include: '#comments'
      ,
        include: '#c_preprocessor'
      ,
        begin: /{lb}(module){rb}/
        end: /{lb}({className}){rb}/
        beginCaptures:
          1: name: 'keyword.other.haskell'
        endCaptures:
          1: name: 'support.other.module.haskell'
        patterns: [
            {include: '#invalid'}
        ]
      ,
        include: '#function_name'
      ,
        include: '#type_name'
      ,
        include: '#comma'
      ,
        include: '#infix_op'
      ,
        name: 'meta.other.constructor-list.haskell'
        begin: /\(/
        end: /\)/
        patterns: [
          { include: '#comments' }
          { include: '#c_preprocessor' }
          { include: '#type_ctor' }
          { include: '#attribute_name' }
          { include: '#comma' }
          {
            match: /\.\./
            name: 'keyword.operator.wildcard.haskell'
          }
          {include: '#infix_op'}
        ]
    ]
  module_name:
    name: 'support.other.module.haskell'
{'fraction_non_alphanumeric': 0.15118945256520494, 'fraction_numerical': 0.003869303525365434, 'mean_word_length': 1.7293703558858036, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7563251', 'n_tokens_mistral': 2197, 'n_tokens_neox': 2157, 'n_words': 379}