aboutsummaryrefslogtreecommitdiff
path: root/py/lexer.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2016-11-16 18:12:55 +1100
committerDamien George <damien.p.george@gmail.com>2016-11-16 18:13:51 +1100
commit66d955c218b66076a3d4300f70388c634c0d3099 (patch)
tree57756a4ded0ec27601a2517cf59c17c9c9bebad6 /py/lexer.c
parente5ef15a9d7bead2a60009caedbc128a8906c7ecd (diff)
py/lexer: Rewrite mp_lexer_new_from_fd in terms of mp_reader.
Diffstat (limited to 'py/lexer.c')
-rw-r--r--py/lexer.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/py/lexer.c b/py/lexer.c
index d3e61b3b4..9342ce8cc 100644
--- a/py/lexer.c
+++ b/py/lexer.c
@@ -770,6 +770,19 @@ mp_lexer_t *mp_lexer_new_from_file(const char *filename) {
return mp_lexer_new(qstr_from_str(filename), reader.data, (mp_lexer_stream_next_byte_t)reader.readbyte, (mp_lexer_stream_close_t)reader.close);
}
+#if MICROPY_HELPER_LEXER_UNIX
+
+mp_lexer_t *mp_lexer_new_from_fd(qstr filename, int fd, bool close_fd) {
+ mp_reader_t reader;
+ int ret = mp_reader_new_file_from_fd(&reader, fd, close_fd);
+ if (ret != 0) {
+ return NULL;
+ }
+ return mp_lexer_new(filename, reader.data, (mp_lexer_stream_next_byte_t)reader.readbyte, (mp_lexer_stream_close_t)reader.close);
+}
+
+#endif
+
#endif
void mp_lexer_free(mp_lexer_t *lex) {