soml-parser/test/cases/function_definition/function_big_while.tst

50 lines
1.0 KiB
Scilab

int fibonaccit(int n)
a = 0
b = 1
while( n > 1 )
tmp = a
a = b
b = tmp + b
puts(b)
n = n - 1
end
end
-- -- --
s(:list, [s(:function, :int,
s(:name, "fibonaccit"),
s(:parameters,
s(:field, :int, :n)),
s(:expressions,
s(:assign,
s(:name, "a"),
s(:int, 0)),
s(:assign,
s(:name, "b"),
s(:int, 1)),
s(:while,
s(:condition,
s(:operator, ">",
s(:name, "n"),
s(:int, 1))),
s(:expressions,
s(:assign,
s(:name, "tmp"),
s(:name, "a")),
s(:assign,
s(:name, "a"),
s(:name, "b")),
s(:assign,
s(:name, "b"),
s(:operator, "+",
s(:name, "tmp"),
s(:name, "b"))),
s(:call,
s(:name, "puts"),
s(:arguments,
s(:name, "b"))),
s(:assign,
s(:name, "n"),
s(:operator, "-",
s(:name, "n"),
s(:int, 1)))))))])