Arithmetic evaluation: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Minor tidy) |
imported>Arakov |
||
Line 1,904: | Line 1,904: | ||
^ weak self.newBracket().gotoStarting() |
^ weak self.newBracket().gotoStarting() |
||
} |
} |
||
! { |
|||
^ weak self.newToken().append(ch).gotoToken() |
^ weak self.newToken().append(ch).gotoToken() |
||
} |
} |
||
Line 1,930: | Line 1,930: | ||
^ weak self.newFraction().gotoOperator() |
^ weak self.newFraction().gotoOperator() |
||
} |
} |
||
! { |
|||
^ weak self.append |
^ weak self.append(ch) |
||
} |
} |
||
} |
} |
||
Line 1,947: | Line 1,947: | ||
^ weak self.newToken().append("0").newDifference().gotoOperator() |
^ weak self.newToken().append("0").newDifference().gotoOperator() |
||
} |
} |
||
! { |
|||
^ weak self.newToken().append |
^ weak self.newToken().append(ch).gotoToken() |
||
} |
} |
||
} |
} |
||
Line 2,014: | Line 2,014: | ||
{ |
{ |
||
if (_level < 10) |
if (_level < 10) |
||
{ InvalidArgumentException.new |
{ InvalidArgumentException.new("Invalid expression").raise() }; |
||
_level := _level - 10 |
_level := _level - 10 |
||
Line 2,023: | Line 2,023: | ||
if(ch >= $48 && ch < $58) |
if(ch >= $48 && ch < $58) |
||
{ |
{ |
||
_token.append |
_token.append(ch) |
||
} |
} |
||
else |
else |
||
{ |
{ |
||
InvalidArgumentException.new |
InvalidArgumentException.new("Invalid expression").raise() |
||
} |
} |
||
} |
} |
||
Line 2,033: | Line 2,033: | ||
append(string s) |
append(string s) |
||
{ |
{ |
||
s.forEach:(ch){ self.append |
s.forEach::(ch){ self.append(ch) } |
||
} |
} |
||
Line 2,123: | Line 2,123: | ||
var scope := Scope.new(self); |
var scope := Scope.new(self); |
||
text.forEach:(ch){ scope.eval |
text.forEach::(ch){ scope.eval(ch) }; |
||
^ scope.Number |
^ scope.Number |
||
Line 2,138: | Line 2,138: | ||
try |
try |
||
{ |
{ |
||
console.printLine("=",parser.run |
console.printLine("=",parser.run(text)) |
||
} |
} |
||
catch(Exception e) |
catch(Exception e) |
||
{ |
{ |
||
console.writeLine |
console.writeLine("Invalid Expression") |
||
}; |
}; |
||