1#!/usr/bin/env ruby 2# encoding: utf-8 3 4# this file generates plain patterns (one-per-line) out of TeX source 5 6# use 'gem install unicode' if unicode is missing on your computer 7 8require_relative 'lib/tex/hyphen/language.rb' 9# include OldLanguage::TeXLive 10include TeX::Hyphen 11 12# FIXME Close files! 13# FIXME sr-cyrl? 14print 'Generating plain files for (parenthesised tags are skipped) ' 15Language.all.sort.each do |language| 16 bcp47 = language.bcp47 17 18 if language.use_old_loader || bcp47 == 'mn-cyrl-x-lmc' 19 print '(', language.bcp47, ') ' 20 next 21 else 22 print bcp47, ' ' 23 end 24 25 outfile = Proc.new do |ext| 26 File.open File.join(PATH::TXT, sprintf('hyph-%s.%s.txt', bcp47, ext)), 'w' 27 end 28 29 # patterns 30 patterns = language.extract_apostrophes 31 file = outfile.('pat') 32 patterns[:plain].each do |pattern| 33 file.puts pattern 34 end 35 36 # apostrophes if applicable 37 with_apostrophe = patterns[:with_apostrophe] 38 if with_apostrophe 39 file = File.open File.join(PATH::QUOTE, sprintf('hyph-quote-%s.tex', bcp47)), 'w' 40 file.printf "\\bgroup\n\\lccode`\\’=`\\’\n\\patterns{\n" 41 with_apostrophe.each do |pattern| 42 file.printf "%s\n", pattern 43 end 44 file.puts "}\n\\egroup\n" 45 end 46 47 # exceptions 48 unless language.exceptions == "" 49 file = outfile.('hyp') # This ensure a file is created, even if it may be empty 50 file.puts language.exceptions 51 end 52 53 ### FIXME Do issue #33 instead 54 ### # characters 55 ### file = outfile.('chr') 56 ### language.extract_characters.each do |character| 57 ### file.puts character 58 ### end 59 60 ### FIXME Do something else instead 61 ### # comments and licence 62 ### file = outfile.('lic') 63 ### file.puts language.comments_and_licence 64 65 ### file.close 66end 67puts 68