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

51 lines
1.1 KiB
Scilab
Raw Normal View History

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
-- -- --
2015-10-09 16:28:47 +02:00
s(:statements,
s(:function, :Integer,
s(:name, :fibonaccit),
s(:parameters,
s(:parameter, :Integer, :n)),
2015-10-09 16:28:47 +02:00
s(:statements,
s(:assignment,
s(:name, :a),
s(:int, 0)),
2015-10-09 16:28:47 +02:00
s(:assignment,
s(:name, :b),
s(:int, 1)),
2015-10-09 16:28:47 +02:00
s(:while_statement,
s(:condition,
2015-10-09 16:28:47 +02:00
s(:operator_value, :>,
s(:name, :n),
s(:int, 1))),
2015-10-09 16:28:47 +02:00
s(:statements,
s(:assignment,
s(:name, :tmp),
s(:name, :a)),
2015-10-09 16:28:47 +02:00
s(:assignment,
s(:name, :a),
s(:name, :b)),
2015-10-09 16:28:47 +02:00
s(:assignment,
s(:name, :b),
2015-10-09 16:28:47 +02:00
s(:operator_value, :+,
s(:name, :tmp),
s(:name, :b))),
s(:call,
s(:name, :puts),
s(:arguments,
s(:name, :b))),
2015-10-09 16:28:47 +02:00
s(:assignment,
s(:name, :n),
2015-10-09 16:28:47 +02:00
s(:operator_value, :-,
s(:name, :n),
s(:int, 1))))))))