%{
#include "../languages.h"

#define BINARY "\1"
#define DISAMBIGUATE(x) ("\2" x)
%}
struct ExtensionMap { const char *key; const char *value; };
%%
4th, LANG_FORTH
C, LANG_CPP
H, LANG_CPP
ada, LANG_ADA
adb, LANG_ADA
ads, LANG_ADA
aiff, BINARY
as, LANG_ACTIONSCRIPT
as8, LANG_ASSEMBLER
ascx, DISAMBIGUATE("aspx")
asm, LANG_ASSEMBLER
aspx, DISAMBIGUATE("aspx")
asx, DISAMBIGUATE("asx")
au, BINARY
aug, LANG_AUGEAS
avi, BINARY
awk, LANG_AWK
b, DISAMBIGUATE("b")
bas, DISAMBIGUATE("basic")
bat, LANG_BAT
bf, LANG_BRAINFUCK
bfpp, LANG_BFPP
bi, DISAMBIGUATE("basic")
bmp, BINARY
bmx, LANG_BLITZMAX
boo, LANG_BOO
c, LANG_C
c++, LANG_CPP
cache, BINARY
cc, LANG_CPP
chai, LANG_CHAISCRIPT
clj, LANG_CLOJURE
cls, LANG_TEX
cmake, LANG_CMAKE
coffee, LANG_COFFEESCRIPT
com, LANG_DCL
cpp, LANG_CPP
cr, LANG_CRYSTAL
cs, DISAMBIGUATE("cs")
csproj, LANG_XML
css, LANG_CSS
ctp, LANG_PHP
cu, LANG_CUDA
cxx, LANG_CPP
d, LANG_DMD
dat, DISAMBIGUATE("dat")
def, DISAMBIGUATE("def")
di, LANG_DMD
doc, BINARY
dtx, LANG_TEX_DTX
dylan, LANG_DYLAN
e, LANG_EIFFEL
ebuild, LANG_EBUILD
ec, LANG_EC
eclass, LANG_EBUILD
eh, LANG_EC
el, LANG_EMACSLISP
erl, LANG_ERLANG
exheres-0, LANG_EXHERES
exlib, LANG_EXHERES
f, DISAMBIGUATE("fortran")
f03, DISAMBIGUATE("fortran")
f08, DISAMBIGUATE("fortran")
f77, DISAMBIGUATE("fortran")
f90, DISAMBIGUATE("fortran")
f95, DISAMBIGUATE("fortran")
factor, LANG_FACTOR
fr, LANG_FORTH
frag, LANG_GLSL
frt, LANG_FORTH
for, DISAMBIGUATE("fortran")
forth, LANG_FORTH
fpp, DISAMBIGUATE("fortran")
frm, LANG_VISUALBASIC
frx, LANG_VISUALBASIC
fs, DISAMBIGUATE("fs")
fth, LANG_FORTH
ftn, DISAMBIGUATE("fortran")
gemspec, LANG_RUBY
gif, BINARY
glsl, LANG_GLSL
go, LANG_GOLANG
groovy, LANG_GROOVY
grace, LANG_GRACE
grc, LANG_GRACE
gs, LANG_GENIE
gz, BINARY
h, DISAMBIGUATE("h")
h++, LANG_CPP
haml, LANG_HAML
hh, LANG_CPP
hpp, LANG_CPP
hrl, LANG_ERLANG
hs, LANG_HASKELL
htm, LANG_HTML
html, LANG_HTML
hx, LANG_HAXE
hxx, LANG_CPP
i3, LANG_MODULA3
icns, BINARY
in, DISAMBIGUATE("in")
inc, DISAMBIGUATE("inc")
j, LANG_OBJECTIVE_J
jar, BINARY
java, LANG_JAVA
jpeg, BINARY
jpg, BINARY
js, LANG_JAVASCRIPT
jsp, LANG_JSP
kdebuild-1, LANG_EBUILD
kt, LANG_KOTLIN
lc, LANG_LIVECODE
latex, LANG_TEX
lisp, LANG_LISP
lsp, LANG_LISP
ltx, LANG_TEX
lgt, LANG_LOGTALK
lua, LANG_LUA
m, DISAMBIGUATE("m")
m3, LANG_MODULA3
m4, LANG_AUTOCONF
m4a, BINARY
mf, LANG_METAFONT
mk, LANG_MAKE
ml, LANG_OCAML
ml4, LANG_OCAML
mli, LANG_OCAML
mm, LANG_OBJECTIVE_C
mo, LANG_MODELICA
mod, DISAMBIGUATE("mod")
mov, BINARY
mp, LANG_METAPOST_WITH_TEX
mp3, BINARY
mpg, BINARY
mt, LANG_MATHEMATICA
mustache, LANG_HTML
mxml, LANG_MXML
nix, LANG_NIX
nse, LANG_LUA
nsi, LANG_NSIS
nsh, LANG_NSIS
ob2, LANG_OBERON
obn, LANG_OBERON
ogg, BINARY
p6, LANG_PERL
p8, LANG_LUA
pas, LANG_PASCAL
perl, LANG_PERL
pdf, BINARY
ph, LANG_PERL
php, LANG_PHP
php3, LANG_PHP
php4, LANG_PHP
php5, LANG_PHP
pike, LANG_PIKE
pl, DISAMBIGUATE("pl")
pm, LANG_PERL
pmc, LANG_C
pmod, LANG_PIKE
png, BINARY
pnt, BINARY
pod, LANG_PERL
pp, DISAMBIGUATE("pp")
ppt, BINARY
pro, DISAMBIGUATE("pro")
ps, LANG_POSTSCRIPT
py, LANG_PYTHON
qml, LANG_QML
qt, BINARY
r, DISAMBIGUATE("r")
r3, LANG_REBOL
ra, BINARY
rb, LANG_RUBY
rbw, LANG_RUBY
reb, LANG_REBOL
rebol, LANG_REBOL
rex, LANG_REXX
rexx, LANG_REXX
rhtml, LANG_RHTML
rkt, LANG_RACKET
rktd, LANG_RACKET
rktl, LANG_RACKET
rs, DISAMBIGUATE("rs")
ru, LANG_RUBY
run, LANG_AMPL
s, LANG_ASSEMBLER
sc, LANG_SCHEME
scala, LANG_SCALA
sce, LANG_SCILAB
sci, LANG_SCILAB
scm, LANG_SCHEME
sh, LANG_SHELL
sls, LANG_SCHEME
sps, LANG_SCHEME
sql, LANG_SQL
ss, LANG_SCHEME
st, DISAMBIGUATE("st")
str, LANG_STRATEGO
sty, LANG_TEX
svg, BINARY
svgz, BINARY
svn, BINARY
swf, BINARY
t, LANG_PERL
tac, LANG_PYTHON
tap, LANG_PYTHON
tar, BINARY
tcl, LANG_TCL
tex, LANG_TEX
tgz, BINARY
tif, BINARY
tiff, BINARY
tpl, LANG_HTML
uc, LANG_UNREALSCRIPT
ts, LANG_TYPESCRIPT
tsx, LANG_TYPESCRIPT
vala, LANG_VALA
vapi, LANG_VALA
v, LANG_COQ
vb, LANG_VISUALBASIC
vba, LANG_VISUALBASIC
vbs, LANG_VISUALBASIC
vert, LANG_GLSL
vhd, LANG_VHDL
vhdl, LANG_VHDL
vim, LANG_VIM
wav, BINARY
wl, LANG_MATHEMATICA
wlt, LANG_MATHEMATICA
xaml, LANG_XAML
xhtml, LANG_HTML
xls, BINARY
xlw, BINARY
xml, LANG_XML
xs, LANG_C
xsd, LANG_XMLSCHEMA
xsl, LANG_XSLT
z80, LANG_ASSEMBLER
zip, BINARY
zpt, LANG_HTML
