chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
================
|
||||
For loop with in
|
||||
================
|
||||
|
||||
for p in PrimesUpTo(100) do
|
||||
print p;
|
||||
end for;
|
||||
|
||||
---
|
||||
|
||||
(source_file
|
||||
(for_statement
|
||||
(identifier)
|
||||
(call_expression
|
||||
name: (identifier)
|
||||
(number))
|
||||
(print_statement (identifier))))
|
||||
|
||||
================
|
||||
While loop
|
||||
================
|
||||
|
||||
while n gt 0 do
|
||||
n := n - 1;
|
||||
end while;
|
||||
|
||||
---
|
||||
|
||||
(source_file
|
||||
(while_statement
|
||||
(binary_expression
|
||||
(identifier)
|
||||
(number))
|
||||
(assignment_statement
|
||||
(identifier)
|
||||
(binary_expression
|
||||
(identifier)
|
||||
(number)))))
|
||||
|
||||
================
|
||||
Case statement
|
||||
================
|
||||
|
||||
case t:
|
||||
when 1:
|
||||
x := 10;
|
||||
when 2:
|
||||
x := 20;
|
||||
else
|
||||
x := 0;
|
||||
end case;
|
||||
|
||||
---
|
||||
|
||||
(source_file
|
||||
(case_statement
|
||||
(identifier)
|
||||
(when_clause (number) (assignment_statement (identifier) (number)))
|
||||
(when_clause (number) (assignment_statement (identifier) (number)))
|
||||
(else_clause (assignment_statement (identifier) (number)))))
|
||||
@@ -0,0 +1,77 @@
|
||||
================
|
||||
Simple function
|
||||
================
|
||||
|
||||
function Factorial(n)
|
||||
if n le 1 then
|
||||
return 1;
|
||||
end if;
|
||||
return n * Factorial(n - 1);
|
||||
end function;
|
||||
|
||||
---
|
||||
|
||||
(source_file
|
||||
(function_definition
|
||||
name: (identifier)
|
||||
(parameter_list
|
||||
(parameter (identifier)))
|
||||
(if_statement
|
||||
(binary_expression
|
||||
(identifier)
|
||||
(number))
|
||||
(return_statement (number)))
|
||||
(return_statement
|
||||
(binary_expression
|
||||
(identifier)
|
||||
(call_expression
|
||||
name: (identifier)
|
||||
(binary_expression
|
||||
(identifier)
|
||||
(number)))))))
|
||||
|
||||
================
|
||||
Procedure with tilde
|
||||
================
|
||||
|
||||
procedure Swap(~x, ~y)
|
||||
t := x;
|
||||
x := y;
|
||||
y := t;
|
||||
end procedure;
|
||||
|
||||
---
|
||||
|
||||
(source_file
|
||||
(procedure_definition
|
||||
name: (identifier)
|
||||
(parameter_list
|
||||
(parameter (identifier))
|
||||
(parameter (identifier)))
|
||||
(assignment_statement (identifier) (identifier))
|
||||
(assignment_statement (identifier) (identifier))
|
||||
(assignment_statement (identifier) (identifier))))
|
||||
|
||||
================
|
||||
Intrinsic with type
|
||||
================
|
||||
|
||||
intrinsic MyAdd(x::RngIntElt, y::RngIntElt) -> RngIntElt
|
||||
{ Returns x+y }
|
||||
return x + y;
|
||||
end intrinsic;
|
||||
|
||||
---
|
||||
|
||||
(source_file
|
||||
(intrinsic_definition
|
||||
name: (identifier)
|
||||
(parameter_list
|
||||
(parameter (identifier) (identifier))
|
||||
(parameter (identifier) (identifier)))
|
||||
(identifier)
|
||||
(doc_string)
|
||||
(return_statement
|
||||
(binary_expression
|
||||
(identifier)
|
||||
(identifier)))))
|
||||
Reference in New Issue
Block a user