#FLOOD_WITH_RANDOM {
- $m6 = -1 + 256 * 256 * 256
+ $m6 = (256 * 256 * 256) - 1
$m7 = !GET_WIDTH()
$m8 = !GET_HEIGHT()
$m2 = !get_a() == !CELL_ALIVE()
if $m2 {
- $m3 = $m1 < 2
- $m3 = $m3 + $m1 > 3
- if $m3 {
+ if ($m1 < 2) + ($m1 > 3) {
!set_r(!CELL_DEAD())
}
} else {
$m7 = $m7 - 1
if $m7 <= 0 {
- $m7 = 30
+ $m7 = 1
$y = 0
while $y < !BOARD_HEIGHT() {
#push_pos {
- $m1 = $x + $y * 256 * 256
+ $m1 = ($y * 256 * 256) + $x
!step_to_linear(0)
!step_to_linear(!get_col() + 1)
!step_to_linear(0)
!set_col(!get_col() + 1)
- $x = $m1 % 256 * 256
- $y = $m1 / 256 * 256
+ $x = $m1 % (256 * 256)
+ $y = $m1 / (256 * 256)
}
#pop_pos {
!step_to_linear(0)
!set_col(!get_col() - 1)
- $x = $m1 % 256 * 256
- $y = $m1 / 256 * 256
+ $x = $m1 % (256 * 256)
+ $y = $m1 / (256 * 256)
}
#get_stack_height {
$y = $y - 2
if $m1 {
- $m8 = 100
+ $m8 = 1
while $m8 {
//Random direction
$m7 = !random(4)
- $m8 = $m8 - 1
// dx and dy
- $m5 = 0
- $m6 = 0
+ $m5 = $m6 = 0
if $m7 == 0 {
$m6 = -2
}
!render()
}
-
-!say(8008135)
if ch == '}':
yield LightToken(kind: ltBlockEnd)
if ch == '(':
- yield LightToken(kind: ltParamStart)
+ yield LightToken(kind: ltLeftParen)
if ch == ')':
- yield LightToken(kind: ltParamEnd)
+ yield LightToken(kind: ltRightParen)
if ch == ';':
yield LightToken(kind: ltExprDelim)
continue
of ltNum: LightExpr(kind: leNumLit, value: curr.value)
of ltVar: LightExpr(kind: leVar, var_name: curr.var_name)
of ltFunc:
- if parser.tokens.Current.kind != ltParamStart:
+ if parser.tokens.Current.kind != ltLeftParen:
raise newException(ValueError, "Expected parameter list after function call")
parser.tokens.Step()
- let params = Parse_block(parser.tokens, ltParamDelim, ltParamEnd)
+ let params = Parse_block(parser.tokens, ltParamDelim, ltRightParen)
LightExpr(
kind: leFuncCall,
right: next,
operation: curr.operation
)
+
+ elif curr.kind == ltLeftParen:
+ let next = parser.NextExpr(LightExpr(kind: leNull), {ltRightParen})
+ parser.tokens.Step()
+ return parser.NextExpr(next, stop_at)
elif curr.kind == ltEq:
if prev.kind != leVar:
ltNull,
ltVar, ltNum,
ltExprDelim,
+ ltLeftParen, ltRightParen,
ltIf, ltElse, ltWhile,
ltBlockStart, ltBlockEnd,
ltBreak,
ltFunc,
- ltParamStart, ltParamEnd,
ltParamDelim,
ltFuncDef,
ltOp, ltEq
of ltEq: "EqualsToken"
of ltNum: "NumberToken[" & $token.value & "]"
of ltExprDelim: "ExprDelimToken"
+ of ltLeftParen: "LeftParenToken"
+ of ltRightParen: "RightParenToken"
of ltIf: "IfToken"
of ltWhile: "WhileToken"
of ltBreak: "BreakToken"
of ltBlockStart: "BlockStartToken"
of ltBlockEnd: "BlockEndToken"
of ltFunc: "FunctionToken[" & token.func_name & "]"
- of ltParamStart: "ParamStartToken"
- of ltParamEnd: "ParamEndToken"
of ltParamDelim: "ParamDelimToken"
of ltFuncDef: "FuncDefToken[" & token.func_name & "]"
of ltOp: "OpeartionToken[" & $token.operation & "]"