# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# trs and log files
*.trs
*.log

# Transducer files
*.hfst
*.ofst
*.sfst
*.foma
*.hfstol

# Generated Python files and folders
/python/__pycache__/
/check_installation/__pycache__/
/python/_libhfst.i
/python/build/
/python/doc/html/
/python/libhfst.py
/python/libhfst_wrap.cpp
*.pyc

# Back-up files
*~

# Generated files in installation check 
/check_installation/check-hfst-*.tar.gz
/check_installation/python_tests/
/check_installation/tool_tests/

# Generated documentation
/doc/html/

# Generated tarballs
hfst-*.tar.gz

# Tests
/libhfst/src/HarmonizeUnknownAndIdentitySymbols
/libhfst/src/HfstApply
/libhfst/src/HfstFlagDiacritics
/libhfst/src/HfstInputStream
/libhfst/src/HfstOutputStream
/libhfst/src/HfstRules
/libhfst/src/HfstSymbolDefs
/libhfst/src/HfstTokenizer
/libhfst/src/HfstTransducer
/libhfst/src/HfstXeroxRules
/libhfst/src/implementations/ConvertFomaTransducer
/libhfst/src/implementations/ConvertLogWeightTransducer
/libhfst/src/implementations/ConvertOlTransducer
/libhfst/src/implementations/ConvertSfstTransducer
/libhfst/src/implementations/ConvertTransducerFormat
/libhfst/src/implementations/ConvertTropicalWeightTransducer
/libhfst/src/implementations/ConvertXfsmTransducer
/libhfst/src/implementations/FomaTransducer
/libhfst/src/implementations/HfstOlTransducer
/libhfst/src/implementations/HfstTransitionGraph
/libhfst/src/implementations/LogWeightTransducer
/libhfst/src/implementations/SfstTransducer
/libhfst/src/implementations/TropicalWeightTransducer
/libhfst/src/implementations/compose_intersect/ComposeIntersectFst
/libhfst/src/implementations/compose_intersect/ComposeIntersectLexicon
/libhfst/src/implementations/compose_intersect/ComposeIntersectRule
/libhfst/src/implementations/compose_intersect/ComposeIntersectRulePair
/libhfst/src/implementations/compose_intersect/ComposeIntersectUtilities
/libhfst/src/implementations/optimized-lookup/convert
/libhfst/src/implementations/optimized-lookup/transducer
/libhfst/src/parsers/LexcCompiler
/libhfst/src/parsers/XreCompiler
/tools/src/hfst-tagger/src/AcyclicAutomaton
/tools/src/hfst-tagger/src/DelayedSequenceModelComponent
/tools/src/hfst-tagger/src/FstBuilder
/tools/src/hfst-tagger/src/LexicalModelBuilder
/tools/src/hfst-tagger/src/ModelBuilder
/tools/src/hfst-tagger/src/NewLexicalModel
/tools/src/hfst-tagger/src/SentenceTagger
/tools/src/hfst-tagger/src/SentenceTransducer
/tools/src/hfst-tagger/src/SequenceModelBuilder
/tools/src/hfst-tagger/src/SequenceModelComponent
/tools/src/hfst-tagger/src/SequenceModelComponentPair
/tools/src/hfst-tagger/src/SequenceTagger
/tools/src/hfst-tagger/src/TaggerBuilder
/tools/src/hfst-tagger/src/WeightedStringVectorCollection
/tools/src/hfst-tagger/src/string_handling
/tools/src/hfst-twolc/src/Alphabet
/tools/src/hfst-twolc/src/ConflictResolvingLeftArrowRule
/tools/src/hfst-twolc/src/ConflictResolvingRightArrowRule
/tools/src/hfst-twolc/src/InputReader
/tools/src/hfst-twolc/src/LeftArrowRule
/tools/src/hfst-twolc/src/LeftArrowRuleContainer
/tools/src/hfst-twolc/src/LeftRestrictionArrowRule
/tools/src/hfst-twolc/src/OtherSymbolTransducer
/tools/src/hfst-twolc/src/RightArrowRule
/tools/src/hfst-twolc/src/RightArrowRuleContainer
/tools/src/hfst-twolc/src/Rule
/tools/src/hfst-twolc/src/RuleContainer
/tools/src/hfst-twolc/src/TwolCGrammar
/tools/src/hfst-twolc/src/string_manipulation
/test/libhfst/test_examples
/test/libhfst/test_flag_diacritics
/test/libhfst/test_hfst_basic_transducer
/test/libhfst/test_rules
/test/libhfst/test_streams
/test/libhfst/test_tokenizer
/test/libhfst/test_transducer_functions
/test/libhfst/test_constructors

# Autotools
Makefile.in
/autom4te.cache
/autoscan.log
/autoscan-*.log
/aclocal.m4
/compile
/config.*
/configure
/configure.scan
/depcomp
/install-sh
/missing
stamp-h?
.dirstamp
.libs/
.deps/
/ltmain.sh
/libtool
/build-aux/

# Generated by scripts/generate-cc-files.sh
/libhfst/src/parsers/xre_lex.cc
/libhfst/src/parsers/pmatch_lex.cc
/libhfst/src/parsers/lexc-lexer.cc
/libhfst/src/parsers/xre_parse.cc
/libhfst/src/parsers/pmatch_parse.cc
/libhfst/src/parsers/lexc-parser.cc
/libhfst/src/parsers/xfst-lexer.cc
/libhfst/src/parsers/xfst-parser.cc
/libhfst/src/parsers/xre_parse.hh
/libhfst/src/parsers/pmatch_parse.hh
/libhfst/src/parsers/lexc-parser.hh
/libhfst/src/parsers/xfst-parser.hh

/tools/src/hfst-compiler.cc
/tools/src/hfst-scanner.cc
/tools/src/hfst-compiler.hh

/tools/src/hfst-twolc/src/htwolcpre?.cc
/tools/src/hfst-twolc/src/scanner?.cc
/tools/src/hfst-twolc/src/htwolcpre?.hh

# Otherwise generated code
/libhfst/hfst.pc
/libhfst/src/hfst.hpp

# Generated man files
/man/hfst-proc2.1
/man/hfst-tokenise.1

# Binary files
/back-ends/foma/hfst_foma
/scripts/hfst-foma
/scripts/hfst-foma-wrapper.sh
/tools/src/hfst-affix-guessify
/tools/src/hfst-calculate
/tools/src/hfst-compare
/tools/src/hfst-compose
/tools/src/hfst-compose-intersect
/tools/src/hfst-concatenate
/tools/src/hfst-conjunct
/tools/src/hfst-determinize
/tools/src/hfst-disjunct
/tools/src/hfst-edit-metadata
/tools/src/hfst-expand-equivalences
/tools/src/hfst-flookup
/tools/src/hfst-format
/tools/src/hfst-fst2fst
/tools/src/hfst-fst2strings
/tools/src/hfst-fst2txt
/tools/src/hfst-grep
/tools/src/hfst-guess
/tools/src/hfst-guessify
/tools/src/hfst-head
/tools/src/hfst-info
/tools/src/hfst-invert
/tools/src/hfst-lexc
/tools/src/hfst-lexc-wrapper
/tools/src/hfst-lookup
/tools/src/hfst-minimize
/tools/src/hfst-multiply
/tools/src/hfst-name
/tools/src/hfst-optimized-lookup
/tools/src/hfst-pair-test
/tools/src/hfst-pmatch
/tools/src/hfst-pmatch2fst
/tools/src/hfst-proc/hfst-apertium-proc
/tools/src/hfst-project
/tools/src/hfst-prune-alphabet
/tools/src/hfst-push-weights
/tools/src/hfst-regexp2fst
/tools/src/hfst-remove-epsilons
/tools/src/hfst-repeat
/tools/src/hfst-reverse
/tools/src/hfst-reweight
/tools/src/hfst-shuffle
/tools/src/hfst-split
/tools/src/hfst-strings2fst
/tools/src/hfst-substitute
/tools/src/hfst-subtract
/tools/src/hfst-summarize
/tools/src/hfst-tagger/src/hfst-build-tagger
/tools/src/hfst-tagger/src/hfst-open-input-file-for-tagger
/tools/src/hfst-tagger/src/hfst-reweight-tagger
/tools/src/hfst-tagger/src/hfst-tag
/tools/src/hfst-tagger/src/hfst-train-tagger
/tools/src/hfst-tagger/src/hfst-train-tagger-loc
/tools/src/hfst-tagger/src/hfst-train-tagger-system
/tools/src/hfst-tail
/tools/src/hfst-tokenize
/tools/src/hfst-traverse
/tools/src/hfst-twolc/src/hfst-twolc
/tools/src/hfst-twolc/src/hfst-twolc-loc
/tools/src/hfst-twolc/src/hfst-twolc-system
/tools/src/hfst-twolc/src/htwolcpre1
/tools/src/hfst-twolc/src/htwolcpre2
/tools/src/hfst-twolc/src/htwolcpre3
/tools/src/hfst-txt2fst
/tools/src/parsers/hfst-xfst

# Aggressive ignores
Makefile
/m4/*

# Add back files ignored by aggressive ignores
!/tools/src/hfst-tagger/src/build_model_src/Makefile
!/m4/README
