summaryrefslogtreecommitdiffstatshomepage
path: root/shared/memzip/lexermemzip.c
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2021-07-09 12:38:25 +1000
committerDamien George <damien@micropython.org>2021-07-12 17:07:36 +1000
commit4d546713ec8858cbf908de45de11cbfc46a20971 (patch)
treefda10704c197bf3500f09297d29239c15f878fab /shared/memzip/lexermemzip.c
parent925878b2f83e09987bd1688746b92898ee8bbcac (diff)
downloadmicropython-4d546713ec8858cbf908de45de11cbfc46a20971.tar.gz
micropython-4d546713ec8858cbf908de45de11cbfc46a20971.zip
shared: Introduce new top-level dir and move 1st party lib code there.
This commit moves all first-party code developed for this project from lib/ to shared/, so that lib/ now only contains third-party code. The following directories are moved as-is from lib to shared: lib/libc -> shared/libc lib/memzip -> shared/memzip lib/netutils -> shared/netutils lib/timeutils -> shared/timeutils lib/upytesthelper -> shared/upytesthelper All files in lib/embed/ have been moved to shared/libc/. lib/mp-readline has been moved to shared/readline. lib/utils has been moved to shared/runtime, with the exception of lib/utils/printf.c which has been moved to shared/libc/printf.c. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'shared/memzip/lexermemzip.c')
-rw-r--r--shared/memzip/lexermemzip.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/shared/memzip/lexermemzip.c b/shared/memzip/lexermemzip.c
new file mode 100644
index 0000000000..6b26961bdc
--- /dev/null
+++ b/shared/memzip/lexermemzip.c
@@ -0,0 +1,19 @@
+#include <stdlib.h>
+
+#include "py/lexer.h"
+#include "py/runtime.h"
+#include "py/mperrno.h"
+#include "memzip.h"
+
+mp_lexer_t *mp_lexer_new_from_file(const char *filename)
+{
+ void *data;
+ size_t len;
+
+ if (memzip_locate(filename, &data, &len) != MZ_OK) {
+ mp_raise_OSError(MP_ENOENT);
+ }
+
+ return mp_lexer_new_from_str_len(qstr_from_str(filename), (const char *)data, (mp_uint_t)len, 0);
+}
+