package data

// CODE GENERATED AUTOMATICALLY WITH gopkg.in/src-d/enry.v1/internal/code-generator
// THIS FILE SHOULD NOT BE EDITED BY HAND
// Extracted from github/linguist commit: {{ getCommit }}

import "gopkg.in/toqueteos/substring.v1"

type languageMatcher func ([]byte) []string

var ContentMatchers = map[string]languageMatcher{
	{{ range $index, $disambiguator := . -}}
	{{ printf "%q" $disambiguator.Extension }}: func(i []byte) []string {
		{{ range $i, $language := $disambiguator.Languages -}}

		{{- if not (avoidLanguage $language) }}
		{{- if gt (len $language.Heuristics) 0 }}
		{{- if gt $i 0 }} else {{ end -}} 
		if {{- range $j, $heuristic := $language.Heuristics }} {{ $heuristic.Name }}.Match(string(i)) 
		{{- if lt $j (len $language.LogicRelations) }} {{index $language.LogicRelations $j}} {{- end -}} {{ end }} {
			return []string{ {{- printf "%q" $language.Language -}} }
		}

		{{- end -}}
		{{- end -}}
		{{- end}}

		return {{ returnLanguages $disambiguator.Languages | returnStringSlice }}
	},
	{{ end -}}
}

var (
    {{ range $index, $heuristic := getAllHeuristics . -}}
    {{ $heuristic.Name }} = substring.Regexp(`{{ $heuristic.Regexp }}`)
    {{ end -}}
)
