mirror of
https://github.com/edg-l/edlang.git
synced 2024-11-09 17:48:24 +00:00
247 lines
8.7 KiB
Plaintext
247 lines
8.7 KiB
Plaintext
|
Program {
|
||
|
statements: [
|
||
|
Struct(
|
||
|
Struct {
|
||
|
name: "Hello",
|
||
|
fields: [
|
||
|
StructField {
|
||
|
ident: "x",
|
||
|
type_exp: Integer {
|
||
|
bits: 32,
|
||
|
signed: true,
|
||
|
},
|
||
|
},
|
||
|
StructField {
|
||
|
ident: "y",
|
||
|
type_exp: Integer {
|
||
|
bits: 32,
|
||
|
signed: true,
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
),
|
||
|
Function(
|
||
|
Function {
|
||
|
name: "test",
|
||
|
params: [
|
||
|
Parameter {
|
||
|
ident: "x",
|
||
|
type_exp: Other {
|
||
|
id: "Hello",
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
body: [
|
||
|
Return(
|
||
|
None,
|
||
|
),
|
||
|
],
|
||
|
return_type: None,
|
||
|
},
|
||
|
),
|
||
|
Function(
|
||
|
Function {
|
||
|
name: "works",
|
||
|
params: [
|
||
|
Parameter {
|
||
|
ident: "x",
|
||
|
type_exp: Integer {
|
||
|
bits: 64,
|
||
|
signed: true,
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
body: [
|
||
|
Let {
|
||
|
name: "z",
|
||
|
value: Literal(
|
||
|
Integer {
|
||
|
value: "0",
|
||
|
bits: None,
|
||
|
signed: None,
|
||
|
},
|
||
|
),
|
||
|
value_type: None,
|
||
|
span: (
|
||
|
107,
|
||
|
117,
|
||
|
),
|
||
|
},
|
||
|
If {
|
||
|
condition: BinaryOp(
|
||
|
Literal(
|
||
|
Integer {
|
||
|
value: "2",
|
||
|
bits: None,
|
||
|
signed: None,
|
||
|
},
|
||
|
),
|
||
|
Eq,
|
||
|
Variable {
|
||
|
name: Spanned {
|
||
|
span: (
|
||
|
130,
|
||
|
131,
|
||
|
),
|
||
|
value: "x",
|
||
|
},
|
||
|
value_type: None,
|
||
|
},
|
||
|
),
|
||
|
body: [
|
||
|
Mutate {
|
||
|
name: "z",
|
||
|
value: BinaryOp(
|
||
|
Variable {
|
||
|
name: Spanned {
|
||
|
span: (
|
||
|
146,
|
||
|
147,
|
||
|
),
|
||
|
value: "x",
|
||
|
},
|
||
|
value_type: None,
|
||
|
},
|
||
|
Mul,
|
||
|
Literal(
|
||
|
Integer {
|
||
|
value: "2",
|
||
|
bits: None,
|
||
|
signed: None,
|
||
|
},
|
||
|
),
|
||
|
),
|
||
|
value_type: None,
|
||
|
span: (
|
||
|
142,
|
||
|
152,
|
||
|
),
|
||
|
},
|
||
|
],
|
||
|
else_body: Some(
|
||
|
[
|
||
|
Mutate {
|
||
|
name: "z",
|
||
|
value: BinaryOp(
|
||
|
Variable {
|
||
|
name: Spanned {
|
||
|
span: (
|
||
|
178,
|
||
|
179,
|
||
|
),
|
||
|
value: "x",
|
||
|
},
|
||
|
value_type: None,
|
||
|
},
|
||
|
Mul,
|
||
|
Literal(
|
||
|
Integer {
|
||
|
value: "3",
|
||
|
bits: None,
|
||
|
signed: None,
|
||
|
},
|
||
|
),
|
||
|
),
|
||
|
value_type: None,
|
||
|
span: (
|
||
|
174,
|
||
|
184,
|
||
|
),
|
||
|
},
|
||
|
],
|
||
|
),
|
||
|
},
|
||
|
Return(
|
||
|
Some(
|
||
|
Variable {
|
||
|
name: Spanned {
|
||
|
span: (
|
||
|
202,
|
||
|
203,
|
||
|
),
|
||
|
value: "z",
|
||
|
},
|
||
|
value_type: None,
|
||
|
},
|
||
|
),
|
||
|
),
|
||
|
],
|
||
|
return_type: Some(
|
||
|
Integer {
|
||
|
bits: 64,
|
||
|
signed: true,
|
||
|
},
|
||
|
),
|
||
|
},
|
||
|
),
|
||
|
Function(
|
||
|
Function {
|
||
|
name: "main",
|
||
|
params: [],
|
||
|
body: [
|
||
|
Let {
|
||
|
name: "y",
|
||
|
value: Literal(
|
||
|
Integer {
|
||
|
value: "2",
|
||
|
bits: None,
|
||
|
signed: None,
|
||
|
},
|
||
|
),
|
||
|
value_type: None,
|
||
|
span: (
|
||
|
231,
|
||
|
241,
|
||
|
),
|
||
|
},
|
||
|
Let {
|
||
|
name: "z",
|
||
|
value: Variable {
|
||
|
name: Spanned {
|
||
|
span: (
|
||
|
254,
|
||
|
255,
|
||
|
),
|
||
|
value: "y",
|
||
|
},
|
||
|
value_type: None,
|
||
|
},
|
||
|
value_type: None,
|
||
|
span: (
|
||
|
246,
|
||
|
256,
|
||
|
),
|
||
|
},
|
||
|
Return(
|
||
|
Some(
|
||
|
Call {
|
||
|
function: "works",
|
||
|
args: [
|
||
|
Variable {
|
||
|
name: Spanned {
|
||
|
span: (
|
||
|
274,
|
||
|
275,
|
||
|
),
|
||
|
value: "z",
|
||
|
},
|
||
|
value_type: None,
|
||
|
},
|
||
|
],
|
||
|
value_type: None,
|
||
|
},
|
||
|
),
|
||
|
),
|
||
|
],
|
||
|
return_type: Some(
|
||
|
Integer {
|
||
|
bits: 64,
|
||
|
signed: true,
|
||
|
},
|
||
|
),
|
||
|
},
|
||
|
),
|
||
|
],
|
||
|
}
|