2024-07-09 14:44:24 +00:00
|
|
|
defclass A [ a ] {
|
2024-02-03 09:50:10 +00:00
|
|
|
defun :* init1() {
|
2023-11-27 09:25:27 +00:00
|
|
|
| b |
|
|
|
|
set b (+ 1 2);
|
|
|
|
set a b;
|
|
|
|
printf "init to %d\n" a;
|
|
|
|
return self;
|
|
|
|
};
|
|
|
|
|
2023-11-26 15:08:59 +00:00
|
|
|
{
|
|
|
|
## this must not be allowed at this level. if it's allowed,
|
|
|
|
## it should be at the top-level which is above the class level. this is confusing.
|
2023-11-27 09:25:27 +00:00
|
|
|
| j | ##ERROR: syntax error - variable declaration disallowed in class init scope
|
2023-11-26 15:08:59 +00:00
|
|
|
set j 20;
|
|
|
|
printf ">>> %d\n" j;
|
|
|
|
}
|
|
|
|
|
2024-02-03 09:50:10 +00:00
|
|
|
defun :* init2() {
|
2023-11-27 09:25:27 +00:00
|
|
|
| b |
|
|
|
|
set b (+ 10 20);
|
|
|
|
set a b;
|
|
|
|
printf "init to %d\n" a;
|
2023-11-26 15:08:59 +00:00
|
|
|
return self;
|
|
|
|
};
|
|
|
|
};
|
2024-05-26 14:18:26 +00:00
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
defun String length() { ##ERROR: syntax error - no argument list
|
|
|
|
}
|
2024-07-09 14:44:24 +00:00
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
class A [ 10 ] { ##ERROR: syntax error - not variable name - 10
|
|
|
|
}
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
class A [ a := 20 ] { ##ERROR: syntax error - := disallowed
|
|
|
|
}
|
|
|
|
|
|
|
|
---
|
|
|
|
class A [ [ [a] ] ] { ##ERROR: syntax error - not variable name
|
|
|
|
}
|
|
|
|
|
|
|
|
---
|
|
|
|
class A [ a + ] { ##ERROR: syntax error - prohibited binary operator - +
|
|
|
|
}
|
|
|
|
|
|
|
|
## TODO: This check is supposed to fail. + must be treated as a binop symbol
|
|
|
|
##---
|
|
|
|
##class A [ + ] { ##ERROR: syntax error - prohibited binary operator - +
|
|
|
|
##}
|