aboutsummaryrefslogtreecommitdiff
path: root/examples/vec.ct
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2023-03-23 16:14:51 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2023-03-23 16:14:51 +0200
commit5b038666c3e911ffeb78a4d656044e5bd076705b (patch)
tree9b09b4f27c39ef6a0139a5eb9bfa5e98a250086c /examples/vec.ct
parent70615379062cdd2e016f5095dfafd23a6dca148c (diff)
downloadek-5b038666c3e911ffeb78a4d656044e5bd076705b.tar.gz
ek-5b038666c3e911ffeb78a4d656044e5bd076705b.zip
integrate parser work
Diffstat (limited to 'examples/vec.ct')
-rw-r--r--examples/vec.ct32
1 files changed, 16 insertions, 16 deletions
diff --git a/examples/vec.ct b/examples/vec.ct
index f44fec0..dee50ca 100644
--- a/examples/vec.ct
+++ b/examples/vec.ct
@@ -1,32 +1,32 @@
-typedef vectorable {
+type vectorable {
std;
/* this would be needed for comparisons like find() or something */
comparable;
}
-typedef vec (t vectorable) {
- void std_vector;
- len usize;
- buf *t;
+type vec {t: vectorable} {
+ std_vector: void;
+ len: usize;
+ buf: 't;
}
-pub define vec(t) { struct (vector[t]) }
+pub define vec(t) { struct (vec{t}) }
-pub init(mut v *vector)
+pub init(v: 'vector)
{
v.len = 0;
v.buf = null;
}
-pub length(v *vec) usize { return v.len; }
+pub length(v: *vec => usize) { return v.len; }
-pub index(v *vec, i usize) *#(v.buf)
+pub index(v: *vec, i: usize => '#v.buf)
{
assert(i < v.len, "index %zu out of bounds\n", i);
return &v.buf[i];
}
-pub index(v *vec, i isize) *#v.buf
+pub index(v: mut *vec, i: const isize => '#v.buf)
{
if i < 0 {
assert(-i < v.len, "reverse index %zi out of bounds\n", i);
@@ -37,17 +37,17 @@ pub index(v *vec, i isize) *#v.buf
return &v.buf[i];
}
-pub prepend(mut *vec, e *#v.buf) { insert(v, e, 0uz); }
-pub append(mut v *vec, e *#v.buf) { insert(v, e, v.len) }
+pub prepend(v: mut 'vec, e: '#v.buf) { insert(v, e, 0); }
+pub append(v: mut 'vec, e: '#v.buf) { insert(v, e, v.len); }
-pub preplace(mut v *vec, e *#v.buf) { place(v, e, 0uz); }
-pub applace(mut v *vec, e *#v.buf) { place(v, e, v.len - 1); }
+pub preplace(v: mut 'vec, e: '#v.buf) { place(v, e, 0); }
+pub applace(v: mut 'vec, e: '#v.buf) { place(v, e, v.len - 1); }
-pub place(mut v *vec, e *#v.buf, i usize)
+pub place(v: mut *vec, e: '#v.buf, i: usize)
{
}
-pub insert(mut v *vec, e *#v.buf, i usize)
+pub insert(v: mut *vec, e^ '#v.buf, i: usize)
{
}