2025-04-27 07:49:33 -04:00

385 lines
14 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<GRAMMAR LANGID="411">
<DEFINE>
<ID NAME="YENs" VAL="1"/>
<ID NAME="CHOOs" VAL="2"/>
<ID NAME="OKUs" VAL="3"/>
<ID NAME="MANNs" VAL="4"/>
<ID NAME="SENNs" VAL="5"/>
<ID NAME="HYAKUs" VAL="6"/>
<ID NAME="JUUs" VAL="7"/>
<ID NAME="ICHIs" VAL="8"/>
<ID NAME="NEGATIVE" VAL="9"/>
<ID NAME="DIGIT" VAL="10"/>
<ID NAME="FP_PART" VAL="12"/>
<ID NAME="FP_PART_D" VAL="95"/>
<ID NAME="ZERO" VAL="13"/>
<ID NAME="NUMERATOR" VAL="14"/>
<ID NAME="DENOMINATOR" VAL="15"/>
<ID NAME="WHOLE" VAL="16"/>
<ID NAME="GRID_INTEGER_9999" VAL="1001"/>
<ID NAME="GRID_INTEGER_STANDALONE" VAL="1002"/>
<ID NAME="GRID_INTEGER" VAL="1003"/>
<ID NAME="GRID_INTEGER_NONNEG" VAL="1004"/>
<ID NAME="GRID_DIGIT_NUMBER" VAL="1005"/>
<ID NAME="GRID_FP_NUMBER" VAL="1006"/>
<ID NAME="GRID_NUMBER_ALL" VAL="1007"/>
</DEFINE>
<!--
GRID_NUMBER_ALL
All kinds of number, negative or positive, integer or float pointing number.
TopLevel Active rule.
-->
<RULE NAME="GRID_NUMBER_ALL" ID="GRID_NUMBER_ALL" TOPLEVEL="ACTIVE" EXPORT="0">
<LN>
<P WEIGHT="1000.01">zhoulotskunosprok</P>
<P WEIGHT="1.01">+/数字モード/すうじもーど/スウジモード;
<O>
<RULEREF NAME="NEGATIVE" PROPNAME="NEGATIVE" PROPID="NEGATIVE"/>
</O>
<L>
<RULEREF NAME="number_base_nonneg" PROPNAME="GRID_INTEGER_STANDALONE" PROPID="GRID_INTEGER_STANDALONE"/>
<RULEREF NAME="GRID_FP_NUMBER" PROPNAME="GRID_FP_NUMBER" PROPID="GRID_FP_NUMBER"/>
</L>
</P>
</LN>
</RULE>
<!--
INTEGER_9999
Numbers in [0, 10000)
Toplevel inactive but can be imported
-->
<RULE NAME="GRID_INTEGER_9999" ID="GRID_INTEGER_9999" TOPLEVEL="INACTIVE" EXPORT="1">
<RULEREF NAME="cardinal_9999" PROPNAME="ICHIs" PROPID="ICHIs"/>
</RULE>
<!--
INTEGER_STANDALONE
A INTEGER_STANDALONE can be in the range (-1e12, 1e12) and will always be
called as a toplevel rule.
This rule is not referenced by any other rules.
-->
<RULE NAME="GRID_INTEGER_STANDALONE" ID="GRID_INTEGER_STANDALONE" TOPLEVEL="INACTIVE" EXPORT="1">
<RULEREF NAME="number_base"/>
</RULE>
<!--
INTEGER
A INTEGER can be in the range (-1e12, 1e12) and will never be called
as a toplevel rule
-->
<RULE NAME="GRID_INTEGER" ID="GRID_INTEGER" TOPLEVEL="INACTIVE" EXPORT="1">
<RULEREF NAME="number_base"/>
</RULE>
<!--
INTEGER_NONNEG
A INTEGER_NONNEG can be in the range [0, 1e12) and will never be called
as a toplevel rule
-->
<RULE NAME="GRID_INTEGER_NONNEG" ID="GRID_INTEGER_NONNEG" TOPLEVEL="INACTIVE" EXPORT="1">
<RULEREF NAME="number_base_nonneg"/>
</RULE>
<!--
DIGIT_NUMBER
Integers in (0, 1e12), spelled out either one digit at a time or two digits
at a time.
This rule is an INACTIVE toplevel rule, since it should go through GRID_INTEGER
to be formatted
-->
<RULE NAME="GRID_DIGIT_NUMBER" ID="GRID_DIGIT_NUMBER" TOPLEVEL="INACTIVE" EXPORT="1">
<P MIN="2" MAX="12">
<RULEREF NAME="digit"/>
</P>
</RULE>
<!--
FP_NUMBER
Floating-point numbers with up to 12 sig figs. Both the stuff to the left of the
decimal point and the stuff to the right of the decimal point can be either
NUMBERs or DIGIT_NUMBERs
-->
<RULE NAME="GRID_FP_NUMBER" ID="GRID_FP_NUMBER" TOPLEVEL="INACTIVE" EXPORT="1">
<O>
<P>
<RULEREF NAME="number_base_nonneg" PROPNAME="ICHIs" PROPID="ICHIs"/>
</P>
</O>
<P>
<L>
<P> /点/てん/テン; </P>
<P> /・/・/テン; </P>
<P> ///テン; </P>
</L>
</P>
<P>
<L>
<P>
<RULEREF NAME="GRID_DIGIT_NUMBER" PROPNAME="FP_PART" PROPID="FP_PART"/>
</P>
<P>
<RULEREF NAME="digit" PROPNAME="FP_PART_D" PROPID="FP_PART_D"/>
</P>
</L>
</P>
</RULE>
<!-- ************************************************************************
CARDINAL QUANTITIES
************************************************************************ -->
<!--
number_base
The rule referenced by the number rules above
-->
<RULE NAME="number_base">
<O>
<RULEREF NAME="NEGATIVE" PROPNAME="NEGATIVE" PROPID="NEGATIVE"/>
</O>
<P>
<RULEREF NAME="number_base_nonneg"/>
</P>
</RULE>
<!--
number_base_nonneg
Same as above except nonnegative
-->
<RULE NAME="number_base_nonneg">
<L>
<P>
<RULEREF NAME="cardinal"/>
</P>
<P>
<RULEREF NAME="GRID_DIGIT_NUMBER" PROPNAME="GRID_DIGIT_NUMBER" PROPID="GRID_DIGIT_NUMBER"/>
</P>
</L>
</RULE>
<!--
cardinal
A cardinal is defined here as a number in [0, 1e16), properly
formed (not spoken digit by digit)
-->
<RULE NAME="cardinal">
<L>
<P>
<RULEREF NAME="cardinal_9999" PROPNAME="CHOOs" PROPID="CHOOs"/>
<P> /兆/ちょう/チョー; </P>
<O>
<RULEREF NAME="cardinal_9999" PROPNAME="OKUs" PROPID="OKUs"/>
<P> /億/おく/オク;</P>
</O>
<O>
<RULEREF NAME="cardinal_9999" PROPNAME="MANNs" PROPID="MANNs"/>
<P> /万/まん/マン; </P>
</O>
<O>
<RULEREF NAME="cardinal_9999" PROPNAME="ICHIs" PROPID="ICHIs"/>
</O>
</P>
<P>
<RULEREF NAME="cardinal_9999" PROPNAME="OKUs" PROPID="OKUs"/>
<P> /億/おく/オク;</P>
<O>
<RULEREF NAME="cardinal_9999" PROPNAME="MANNs" PROPID="MANNs"/>
<P> /万/まん/マン; </P>
</O>
<O>
<RULEREF NAME="cardinal_9999" PROPNAME="ICHIs" PROPID="ICHIs"/>
</O>
</P>
<P>
<RULEREF NAME="cardinal_9999" PROPNAME="MANNs" PROPID="MANNs"/>
<P> /万/まん/マン; </P>
<O> <RULEREF NAME="cardinal_9999" PROPNAME="ICHIs" PROPID="ICHIs"/> </O>
</P>
<P>
<RULEREF NAME="cardinal_9999" PROPNAME="ICHIs" PROPID="ICHIs"/>
</P>
</L>
</RULE>
<!--
cardinal_9999
This is defined as a number in [0,10000).
-->
<RULE NAME="cardinal_9999">
<L>
<P>
<RULEREF NAME="senn_frag"/>
<O><RULEREF NAME="hyaku_frag"/></O>
<O><RULEREF NAME="juu_frag"/></O>
<O><RULEREF NAME="ichi_frag"/></O>
</P>
<P>
<RULEREF NAME="hyaku_frag"/>
<O><RULEREF NAME="juu_frag"/></O>
<O><RULEREF NAME="ichi_frag"/></O>
</P>
<P>
<RULEREF NAME="juu_frag"/>
<O><RULEREF NAME="ichi_frag"/></O>
</P>
<P>
<RULEREF NAME="ichi_frag"/>
</P>
</L>
</RULE>
<RULE NAME="NEGATIVE">
<L>
<P>
//まいなす/マイナス;
</P>
<P>
/マイナス/まいなす/マイナス;
</P>
</L>
</RULE>
<RULE NAME="senn_frag">
<LN PROPNAME="SENNs" PROPID="SENNs">
<PN VAL="1000"> /千/せん/セン; </PN>
<PN VAL="1000"> /一千/いっせん/イッセン; </PN>
<PN VAL="2000"> /二千/にせん/ニセン; </PN>
<PN VAL="3000"> /三千/さんぜん/サンゼン; </PN>
<PN VAL="4000"> /四千/よんせん/ヨンセン; </PN>
<PN VAL="5000"> /五千/ごせん/ゴセン; </PN>
<PN VAL="6000"> /六千/ろくせん/ロクセン; </PN>
<PN VAL="7000"> /七千/ななせん/ナナセン; </PN>
<PN VAL="8000"> /八千/はっせん/ハッセン; </PN>
<PN VAL="9000"> /九千/きゅうせん/キューセン; </PN>
</LN>
</RULE>
<RULE NAME="hyaku_frag">
<LN PROPNAME="HYAKUs" PROPID="HYAKUs">
<PN VAL="100"> /百/ひゃく/ヒャク; </PN>
<PN VAL="100"> /百/ひゃっ/ヒャッ; </PN>
<PN VAL="200"> /二百/にひゃく/ニヒャク; </PN>
<PN VAL="200"> /二百/にひゃっ/ニヒャッ; </PN>
<PN VAL="300"> /三百/さんびゃく/サンビャク; </PN>
<PN VAL="300"> /三百/さんびゃっ/サンビャッ; </PN>
<PN VAL="400"> /四百/よんひゃく/ヨンヒャク; </PN>
<PN VAL="400"> /四百/よんひゃっ/ヨンヒャッ; </PN>
<PN VAL="500"> /五百/ごひゃく/ゴヒャク; </PN>
<PN VAL="500"> /五百/ごひゃっ/ゴヒャッ; </PN>
<PN VAL="600"> /六百/ろっぴゃく/ロッピャク; </PN>
<PN VAL="600"> /六百/ろっぴゃっ/ロッピャッ; </PN>
<PN VAL="700"> /七百/ななひゃく/ナナヒャク; </PN>
<PN VAL="700"> /七百/ななひゃっ/ナナヒャッ; </PN>
<PN VAL="800"> /八百/はっぴゃく/ハッピャク; </PN>
<PN VAL="800"> /八百/はっぴゃっ/ハッピャッ; </PN>
<PN VAL="900"> /九百/きゅうひゃく/キューヒャク; </PN>
<PN VAL="900"> /九百/きゅうひゃっ/キューヒャッ; </PN>
</LN>
</RULE>
<RULE NAME="juu_frag">
<LN PROPNAME="JUUs" PROPID="JUUs">
<PN VAL="10"> /十/じゅう/ジュー; </PN>
<PN VAL="10"> /十/じゅっ/ジュッ; </PN>
<PN VAL="10"> /十/じっ/ジッ; </PN>
<PN VAL="20"> /二十/にじゅう/ニジュー; </PN>
<PN VAL="20"> /二十/にじゅっ/ニジュッ; </PN>
<PN VAL="20"> /二十/にじっ/ニジッ; </PN>
<PN VAL="30"> /三十/さんじゅう/サンジュー; </PN>
<PN VAL="30"> /三十/さんじゅっ/サンジュッ; </PN>
<PN VAL="30"> /三十/さんじっ/サンジッ; </PN>
<PN VAL="40"> /四十/よんじゅう/ヨンジュー; </PN>
<PN VAL="40"> /四十/よんじゅっ/ヨンジュッ; </PN>
<PN VAL="40"> /四十/よんじっ/ヨンジッ; </PN>
<PN VAL="40"> /四十/しじゅう/シジュー; </PN>
<PN VAL="40"> /四十/しじゅっ/シジュッ; </PN>
<PN VAL="50"> /五十/ごじゅう/ゴジュー; </PN>
<PN VAL="50"> /五十/ごじゅっ/ゴジュッ; </PN>
<PN VAL="50"> /五十/ごじっ/ゴジッ; </PN>
<PN VAL="60"> /六十/ろくじゅう/ロクジュー; </PN>
<PN VAL="60"> /六十/ろくじゅっ/ロクジュッ; </PN>
<PN VAL="60"> /六十/ろくじっ/ロクジッ; </PN>
<PN VAL="70"> /七十/しちじゅう/シチジュー; </PN>
<PN VAL="70"> /七十/しちじゅっ/シチジュッ; </PN>
<PN VAL="70"> /七十/しちじっ/シチジッ; </PN>
<PN VAL="70"> /七十/ななじゅう/ナナジュー; </PN>
<PN VAL="70"> /七十/ななじゅっ/ナナジュッ; </PN>
<PN VAL="70"> /七十/ななじっ/ナナジッ; </PN>
<PN VAL="80"> /八十/はちじゅう/ハチジュー; </PN>
<PN VAL="80"> /八十/はちじゅっ/ハチジュッ; </PN>
<PN VAL="80"> /八十/はちじっ/ハチジッ; </PN>
<PN VAL="90"> /九十/きゅうじゅう/キュージュー; </PN>
<PN VAL="90"> /九十/きゅうじゅっ/キュージュッ; </PN>
<PN VAL="90"> /九十/きゅうじっ/キュージッ; </PN>
</LN>
</RULE>
<RULE NAME="ichi_frag">
<LN PROPNAME="ICHIs" PROPID="ICHIs">
<PN VAL="0"> //ぜろ/ゼロ; </PN>
<PN VAL="0"> /ゼロ/ぜろ/ゼロ; </PN>
<PN VAL="0"> /零/れい/レー; </PN>
<PN VAL="1"> /一/いち/イチ; </PN>
<PN VAL="1"> /一/いっ/イッ; </PN>
<PN VAL="2"> /二/に/ニ; </PN>
<PN VAL="3"> /三/さん/サン; </PN>
<PN VAL="4"> /四/よん/ヨン; </PN>
<PN VAL="4"> /四/よ/ヨ; </PN>
<PN VAL="4"> /四/し/シ; </PN>
<PN VAL="5"> /五/ご/ゴ; </PN>
<PN VAL="6"> /六/ろく/ロク; </PN>
<PN VAL="6"> /六/ろっ/ロッ; </PN>
<PN VAL="7"> /七/しち/シチ; </PN>
<PN VAL="7"> /七/なな/ナナ; </PN>
<PN VAL="8"> /八/はち/ハチ; </PN>
<PN VAL="8"> /八/はっ/ハッ; </PN>
<PN VAL="9"> /九/きゅう/キュー; </PN>
<PN VAL="9"> /九/く/ク; </PN>
</LN>
</RULE>
<RULE NAME="digit">
<LN PROPNAME="DIGIT" PROPID="DIGIT">
<PN VAL="0"> //ぜろ/ゼロ; </PN>
<PN VAL="0"> /ゼロ/ぜろ/ゼロ; </PN>
<PN VAL="0"> /零/れい/レー; </PN>
<PN VAL="1"> /一/いち/イチ; </PN>
<PN VAL="1"> /一/いっ/イッ; </PN>
<PN VAL="2"> /二/に/ニ; </PN>
<PN VAL="3"> /三/さん/サン; </PN>
<PN VAL="4"> /四/よん/ヨン; </PN>
<PN VAL="4"> /四/し/シ; </PN>
<PN VAL="4"> /四/よ/ヨ; </PN>
<PN VAL="5"> /五/ご/ゴ; </PN>
<PN VAL="6"> /六/ろく/ロク; </PN>
<PN VAL="6"> /六/ろっ/ロッ; </PN>
<PN VAL="7"> /七/しち/シチ; </PN>
<PN VAL="7"> /七/なな/ナナ; </PN>
<PN VAL="8"> /八/はち/ハチ; </PN>
<PN VAL="8"> /八/はっ/ハッ; </PN>
<PN VAL="9"> /九/きゅう/キュー; </PN>
<PN VAL="9"> /九/く/ク; </PN>
</LN>
</RULE>
</GRAMMAR>