You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
384 lines
14 KiB
384 lines
14 KiB
<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>
|