*** empty log message ***
[m17n/m17n-docs.git] / data-usr / flt.txt
index a75a8ad..7d45f0d 100644 (file)
@@ -1,67 +1,65 @@
-;; FILE-FORMAT:
-;;     '('
-;;     CATEGORY-TABLE GENERATOR
-;;     ( CATEGORY-TABLE ? GENERATOR ) *
-;;     ')'
-;;
-;; CATEGORY-TABLE ::=
-;;     '(' 'category' CATEGORY-SPEC + ')'
-;;
-;; CATEGORY-SPEC ::=
-;;     '(' CODE CATEGORY-CODE ')'
-;;     |
-;;     '(' CODE CHAR-CODE CATEGORY-CODE ')'
-;;
-;; CATEGORY-CODE ::=
-;;     [ '?A' .. '?Z' '?a' .. '?z' ]
-;;
-;; GENERATOR ::=
-;;     '(' 'generator' REGEX-RULE RULE-DEF * ')'
-;;
-;; RULE-DEF ::=
-;;     '(' RULE-NAME ( REGEXP-RULE | MATCH-RULE | MAP-RULE ) ')'
-;;
-;; REGEXP-RULE ::=
-;;     '(' REGEXP RULE-SEQ ')' | RULE-NAME
-;; MATCH-RULE ::=
-;;     '(' MATCH-IDX RULE-SEQ ')' | RULE-NAME
-;;
-;; RULE-SEQ ::=
-;;     '(' ( REGEXP-RULE | MATCH-RULE | MAP-RULE | PREDEFINED ) ')'
-
-;; PREDEFIND ::= PREDEFIND-SIMLE | PREDEFIND-OTF
-;;
-;; PREDEFIND-SIMLE ::= '=' | '*' | '<' | '>' | '|'
-;;
-;; PREDEFIND-OTF ::= '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>
-;;   ex: 'otf:deva'
-;;
-;; MAP-RULE ::=
-;;     '(' ( SEQ-TO-SEQ | RANGE-TO-CODE ) + ')' | RULE-NAME
-;;
-;; SEQ-TO-SEQ ::=
-;;     '(' CODE + '-1' ( COMPOSITION-RULE ? CODE ) * ')'
-;; RANGE-TO-CODE ::=
-;;     '(' '(' CODE CODE ')' COMPOSITION-RULE ? CODE ')'
-;;
-;; COMPOSITION-RULE ::= 'VHOVH'
-;;     where V ::= ( 't' | 'c' | 'b' | 'B' )
-;;           H ::= ( 'l' | 'c' | 'r' )
-;;           O ::= ( '.' | XOFF | XOFF ? YOFF )
-;;           XOFF ::= ('+' | '-') DIGITS
-;;           YOFF ::= ('<' | '>') DIGITS
-;;   Ex: 'tc+bc', 'Bl-10<20Br'
-;;
-;; Semantics of predefiend commands:
-;;
-;;  '*': 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.
-;;
+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.
+