Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,59 @@
T Error
String message
F (message)
.message = message
T RPNParse
[Float] stk
[Int] digits
F op(f)
I .stk.len < 2
X Error(Improperly written expression)
V b = .stk.pop()
V a = .stk.pop()
.stk.append(f(a, b))
F parse(s)
L(c) s
I c C 0..9
.stk.append(Float(c))
.digits.append(Int(c))
E I c == + {.op((a, b) -> a + b)}
E I c == - {.op((a, b) -> a - b)}
E I c == * {.op((a, b) -> a * b)}
E I c == / {.op((a, b) -> a / b)}
E I c !=
X Error(Wrong char: c)
F get_result()
I .stk.len != 1
X Error(Improperly written expression)
R .stk.last
[Int] digits
print(Make 24 with the digits:, end' )
L 4
V n = random:(1..9)
print( n, end' )
digits.append(n)
print()
V parser = RPNParse()
X.try
parser.parse(input())
V r = parser.get_result()
I sorted(digits) != sorted(parser.digits)
print(Error: Not using the given digits)
E
print(Result: r)
I r C 23.999<.<24.001
print(Good job!)
E
print(Try again.)
X.catch Error error
print(Error: error.message)