Parser fixes; Lib updates

This commit is contained in:
dcodeIO
2018-01-29 22:36:07 +01:00
parent 74498852f0
commit 1995bf9eb4
18 changed files with 282 additions and 103 deletions

4
std/assembly/iterator.ts Normal file
View File

@ -0,0 +1,4 @@
// export abstract class Iterator<T> {
// abstract get done(): bool;
// abstract next(): T;
// }

View File

@ -1,3 +1,37 @@
export class Map<K,V> {
// TODO
private __keys: K[] = [];
private __values: V[] = [];
// FIXME: not a proper map implementation, just a filler
get size(): i32 {
return this.__keys.length;
}
get(key: K): V | null {
var keys = this.__keys;
for (var i = 0, k = keys.length; i < k; ++i)
if (keys[i] == key)
return this.__values[i];
return null;
}
has(key: K): bool {
var keys = this.__keys;
for (var i = 0, k = keys.length; i < k; ++i)
if (keys[i] == key)
return true;
return false;
}
set(key: K, value: V): void {
this.__keys.push(key);
this.__values.push(value);
}
clear(): void {
this.__keys.length = 0;
this.__values.length = 0;
}
}

View File

@ -66,3 +66,14 @@ export class Set<T> {
// TODO: think about iterators
}
// class SetIterator<T> extends Iterator<T> {
// get done(): bool {
// throw new Error("not implemented");
// }
// next(): T {
// throw new Error("not implemented");
// }
// }