*** empty log message ***
[m17n/m17n-docs.git] / data-usr / flt.txt
1 ;; FILE-FORMAT:
2 ;;      '('
3 ;;      CATEGORY-TABLE GENERATOR
4 ;;      ( CATEGORY-TABLE ? GENERATOR ) *
5 ;;      ')'
6 ;;
7 ;; CATEGORY-TABLE ::=
8 ;;      '(' 'category' CATEGORY-SPEC + ')'
9 ;;
10 ;; CATEGORY-SPEC ::=
11 ;;      '(' CODE CATEGORY-CODE ')'
12 ;;      |
13 ;;      '(' CODE CHAR-CODE CATEGORY-CODE ')'
14 ;;
15 ;; CATEGORY-CODE ::=
16 ;;      [ '?A' .. '?Z' '?a' .. '?z' ]
17 ;;
18 ;; GENERATOR ::=
19 ;;      '(' 'generator' REGEX-RULE RULE-DEF * ')'
20 ;;
21 ;; RULE-DEF ::=
22 ;;      '(' RULE-NAME ( REGEXP-RULE | MATCH-RULE | MAP-RULE ) ')'
23 ;;
24 ;; REGEXP-RULE ::=
25 ;;      '(' REGEXP RULE-SEQ ')' | RULE-NAME
26 ;; MATCH-RULE ::=
27 ;;      '(' MATCH-IDX RULE-SEQ ')' | RULE-NAME
28 ;;
29 ;; RULE-SEQ ::=
30 ;;      '(' ( REGEXP-RULE | MATCH-RULE | MAP-RULE | PREDEFINED ) ')'
31
32 ;; PREDEFIND ::= PREDEFIND-SIMLE | PREDEFIND-OTF
33 ;;
34 ;; PREDEFIND-SIMLE ::= '=' | '*' | '<' | '>' | '|'
35 ;;
36 ;; PREDEFIND-OTF ::= 'otf:SCRIPT-TAG[:LANGSYS-TAG]' 
37 ;;   where
38 ;;      SCRIPT-TAG is OTF's ScriptTag name (four letters) listed at:
39 ;;              <http://www.microsoft.om/typograph/otspec/scripttags.htm>
40 ;;      LANGSYS-TAG is OTF's Language System name (four letters) listed at:
41 ;;              <http://www.microsoft.om/typograph/otspec/languagetags.htm>
42 ;;   ex: 'otf:deva'
43 ;;
44 ;; MAP-RULE ::=
45 ;;      '(' ( SEQ-TO-SEQ | RANGE-TO-CODE ) + ')' | RULE-NAME
46 ;;
47 ;; SEQ-TO-SEQ ::=
48 ;;      '(' CODE + '-1' ( COMPOSITION-RULE ? CODE ) * ')'
49 ;; RANGE-TO-CODE ::=
50 ;;      '(' '(' CODE CODE ')' COMPOSITION-RULE ? CODE ')'
51 ;;
52 ;; COMPOSITION-RULE ::= 'VHOVH'
53 ;;      where V ::= ( 't' | 'c' | 'b' | 'B' )
54 ;;            H ::= ( 'l' | 'c' | 'r' )
55 ;;            O ::= ( '.' | XOFF | XOFF ? YOFF )
56 ;;            XOFF ::= ('+' | '-') DIGITS
57 ;;            YOFF ::= ('<' | '>') DIGITS
58 ;;   Ex: 'tc+bc', 'Bl-10<20Br'
59 ;;
60 ;; Semantics of predefiend commands:
61 ;;
62 ;;  '*': repeat the previous command if the command was successful.
63 ;;  '<': start grapheme cluster
64 ;;  '>': end grapheme cluster
65 ;;  '|': produce a special glyph whose code has category-code ' '.
66 ;;  '=': use the first glyph of the current run as is.
67 ;;