diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2026-03-23 13:19:15 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2026-03-23 13:19:15 +0100 |
| commit | a1e10c737e5dd383a50f5550138178225821ec87 (patch) | |
| tree | b9852a1bd7730b081aa6919cd4148a94cac61f7f /include/GenericsLibrary | |
| parent | 13a1c3191cee5adf4a91c16c3c1926b9df7596f9 (diff) | |
[FIX] GenericsLibrary: stdlib improvements.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'include/GenericsLibrary')
| -rw-r--r-- | include/GenericsLibrary/algorithm.nhh | 17 | ||||
| -rw-r--r-- | include/GenericsLibrary/fstream.nhh | 2 | ||||
| -rw-r--r-- | include/GenericsLibrary/io.nhh | 4 | ||||
| -rw-r--r-- | include/GenericsLibrary/iterator.nhh | 32 | ||||
| -rw-r--r-- | include/GenericsLibrary/nrt.nc | 2 |
5 files changed, 23 insertions, 34 deletions
diff --git a/include/GenericsLibrary/algorithm.nhh b/include/GenericsLibrary/algorithm.nhh index 5d1bc32..1dd1e0c 100644 --- a/include/GenericsLibrary/algorithm.nhh +++ b/include/GenericsLibrary/algorithm.nhh @@ -9,9 +9,9 @@ //@ Free algorithm functions for GenericsLibrary. -let for_each(let iterator_instance, let action) +let for_each(let it, let action) { - for (let i := iterator_instance.begin(); i != iterator_instance.end(); i += 1) + for (let i := it.begin(); i != it.end(); i += 1) { action(i); } @@ -19,9 +19,9 @@ let for_each(let iterator_instance, let action) return; } -let find(let iterator_instance, let predicate) +let find(let it, let predicate) { - for (let i := iterator_instance.begin(); i != iterator_instance.end(); i += 1) + for (let i := it.begin(); i != it.end(); i += 1) { if (predicate(i)) { @@ -29,15 +29,18 @@ let find(let iterator_instance, let predicate) } } - return -1; + return 1; } let remove(let it, let pred) { - for (let i = it.begin(); i != i != it.end(); ++i) + for (let i = it.begin(); i != it.end(); ++i) { if (pred(i)) - return 0; + { + i = 0; + return 0; + } } return 1; diff --git a/include/GenericsLibrary/fstream.nhh b/include/GenericsLibrary/fstream.nhh index 4808dd8..a063bd3 100644 --- a/include/GenericsLibrary/fstream.nhh +++ b/include/GenericsLibrary/fstream.nhh @@ -35,14 +35,12 @@ impl fstream : trait fstream_traits let write(let data, let size) { let written := __traits_write(fd_, data, size); - return written; } let read(let region, let size) { let readen := __traits_read(fd_, region, size); - return readen; } }; diff --git a/include/GenericsLibrary/io.nhh b/include/GenericsLibrary/io.nhh index 25bc561..bf2f351 100644 --- a/include/GenericsLibrary/io.nhh +++ b/include/GenericsLibrary/io.nhh @@ -7,14 +7,14 @@ #ifndef NECTAR_GL_IO_NHH #define NECTAR_GL_IO_NHH -import ncl_printf; +import core_print_format_ln; const writefn(let fmt, let args) { if (fmt := 0) return; - ncl_printf(fmt, {args}); + core_print_format_ln(fmt, {args}); } #endif diff --git a/include/GenericsLibrary/iterator.nhh b/include/GenericsLibrary/iterator.nhh index e509bc2..ecc82ed 100644 --- a/include/GenericsLibrary/iterator.nhh +++ b/include/GenericsLibrary/iterator.nhh @@ -24,38 +24,26 @@ trait iterator_traits impl iterator : trait iterator_traits { - let init() + let begin(let self) { - return 0; - } - - let dispose() - { - return 0; - } - - let begin() - { - must_pass(_begin != _end); + must_pass(self._begin != self._end); - let end := _begin; - return end; + let begin := self._begin; + return begin; } - let end() + let end(let self) { - must_pass(_begin != _end); + must_pass(_begin != _end); - let end :=_begin; - end += _end; - + let end := self._end; return end; } - let size() + let size(let self) { - must_pass(_size > 0); - return _size; + must_pass(self._size > 0); + return self._size; } }; diff --git a/include/GenericsLibrary/nrt.nc b/include/GenericsLibrary/nrt.nc index 6a39808..0a62d81 100644 --- a/include/GenericsLibrary/nrt.nc +++ b/include/GenericsLibrary/nrt.nc @@ -4,7 +4,7 @@ // file LICENSE or copy at http://www.apache.org/licenses/LICENSE-2.0) // Official repository: https://github.com/ne-foss-org/nectar -extern main; +import main; //@ The main entrypoint is an external symbol defined by the user program. //@ You may also define it as a library and then write your own main wrapper over it. |
