+++ /dev/null
-FONT-LAYOUT-TABLE ::=
- '(' CATEGORY-TABLE GENERATOR ( CATEGORY-TABLE ? GENERATOR ) * ')'
-
-CATEGORY-TABLE ::=
- '(' 'category' CATEGORY-SPEC + ')'
-
-CATEGORY-SPEC ::=
- '(' ( CODE | CODE-FROM CODE-TO ) CATEGORY-CODE ')'
-
-CATEGORY-CODE ::=
- [ '?A' | ... | '?Z' | '?a' | ... | '?z' ]
-
-GENERATOR ::=
- '(' 'generator' RULE RULE-DEF * ')'
-
-RULE-DEF ::=
- '(' RULE-NAME RULE ')'
-
-RULE ::=
- REGEXP-RULE | MATCH-RULE | MAP-RULE | PREDEFINED-RULE | OTF-RULE
-
-REGEXP-RULE ::=
- '(' REGEXP RULE * ')' | RULE-NAME
-
-MATCH-RULE ::=
- '(' MATCH-IDX RULE * ')' | RULE-NAME
-
-PREDEFINED-RULE ::=
- '=' | '*' | '<' | '>' | '|'
-
-OTF-URLE ::=
- 'otf:SCRIPT-TAG[:LANGSYS-TAG]'
- where
- SCRIPT-TAG is OTF's ScriptTag name (four letters) listed at:
- <http://www.microsoft.om/typograph/otspec/scripttags.htm>
- LANGSYS-TAG is OTF's Language System name (four letters) listed at:
- <http://www.microsoft.om/typograph/otspec/languagetags.htm>
- Example: 'otf:deva'
-
-MAP-RULE ::=
- '(' ( SEQ-TO-SEQ | RANGE-TO-CODE ) + ')' | RULE-NAME
-
-SEQ-TO-SEQ ::=
- '(' CODE + '-1' ( COMBINING-SPEC ? CODE ) * ')'
-
-RANGE-TO-CODE ::=
- '(' '(' CODE-FROM CODE-TO ')' COMBINING-SPEC ? CODE ')'
-
-COMBINING-SPEC ::=
- 'VHOVH'
- where V ::= ( 't' | 'c' | 'b' | 'B' )
- H ::= ( 'l' | 'c' | 'r' )
- O ::= ( '.' | XOFF | YOFF XOFF ? )
- XOFF ::= ('<' | '>') DIGITS
- YOFF ::= ('+' | '-') DIGITS
- Example: 'tc+bc', 'Bl-10<20Br'
-
-Semantics of PREDEFINED-RULE:
-
- '*': repeat the previous command if the command was successful.
- '<': start grapheme cluster
- '>': end grapheme cluster
- '|': produce a special glyph whose code has category-code ' '.
- '=': use the first glyph of the current run as is.
-