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