Roman numerals/Decode: Difference between revisions
Content added Content deleted
(Applesoft BASIC) |
m (→{{header|Tailspin}}: update to stricter typing) |
||
Line 6,565: | Line 6,565: | ||
def digits: [(M:1000"1"), (CM:900"1"), (D:500"1"), (CD:400"1"), (C:100"1"), (XC:90"1"), (L:50"1"), (XL:40"1"), (X:10"1"), (IX:9"1"), (V:5"1"), (IV:4"1"), (I:1"1")]; |
def digits: [(M:1000"1"), (CM:900"1"), (D:500"1"), (CD:400"1"), (C:100"1"), (XC:90"1"), (L:50"1"), (XL:40"1"), (X:10"1"), (IX:9"1"), (V:5"1"), (IV:4"1"), (I:1"1")]; |
||
composer decodeRoman |
composer decodeRoman |
||
@: 1; |
@: 1"1"; |
||
[ <digit>* ] -> \(@: 0; $... -> @: $@ + $; $@ !\) |
[ <digit>* ] -> \(@: 0"1"; $... -> @: $@ + $; $@ !\) |
||
rule digit: <value>* (@: $@ + 1;) |
rule digit: <value>* (@: $@ + 1"1";) |
||
rule value: <='$digits($@)::key;'> -> $digits($@)::value |
rule value: <='$digits($@)::key;'> -> $digits($@)::value |
||
end decodeRoman |
end decodeRoman |