Code Monkey home page Code Monkey logo

jingo's Introduction

👋

I'm Owen Griffiths, a software engineer currently residing in Liverpool, UK. I primarily use the Python and Rust programming languages, focusing on fields such as Web Development, Parsers and Developer Tooling.

You can contact me using the links to the left or visit my LinkedIn or Portfolio for a small blog and extra contact infomation.

jingo's People

Contributors

owez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

jingo's Issues

GitHub pages docs

Could be useful (but a little confusing) if docs where made for the jingo/ CLI crate as it will never be publically available on crates.io

More examples

Could use with more examples in examples/ to show off more of the general language

Don't include `tokens` for `scan_next_token`

Could be faster by just returning a token and appending it inside of the main token scan. This will also allow scan_next_token to be a public function (would need to be renamed to scan_token though).

Migrate from `colored` library

It is a high level library but contains 8 dependencies, needlessly hurting compile size compared to something lower-level but that works just as well.

Mainly a binary size issue to reduce ideally ~150kb from the binary, potentially halving it's size.

Finish adding CLIStage-related content

User cannot currently pick anything other then normal, cli is exactly the same to user currently even though it's been expanded under the hood much more

Multiline docstrings

Need to parse & strip multiple lines of --- hi\n--- more\n--- docs\nclass Hi; because right now it's [DocStr, DocStr, DocStr, ...], not [DocStr, ...] in parsing

CLI Rewrite

CLI has became cumbersome to work on in jingo/ crate and should be (partially) rewritten, prehaps with help of the in-house climake once that has been rewritten itself.

String literal improments

Should add a \" so you don't accidently escape strings and such and some basic string literal tests

Choosing regex library

Could use the main regex library or the lower level regex_automata. Looks like regex has technically no dependancies (but optionals are probably enabled) and the other has 1 normal dep and 2 optional ones that may not be used.

Probably best to use the normal regex but still up for debate.

Fix uglyness of current lexing

Got a lot of strange borrowing stuff going on that could be simplified with better lookahead instead of chars.next() and stuff all the time, fixing weirdness of get_numlit_data, get_strlit_data and get_comment_data.

Identifiers + number literals

Need to figure out what to do for lexing number literals, prehaps put it in the same type of thing as iterators but if it doesnt follow the iterator pattern and can be parsed as a number it becomes a number literal automatically.

Rewrite lexer

Currently implemented lexer is setup in a strange pseudo-oop way as I was directly translating from the crafting interpreters lexing tutorial with a few differences. Should be changed to a simple function with private functions that get passed args directly.

Basic parser implementation

A very basic parser should be set in the next week or two, most likely using lalrpop as i'm already familiar with it and dev time > dependency count.

Reserve package manager functions in CLI

Functions like -i/--install or -r/--remove will most likely be used in the future to install/remove packages with the yet un-made package manager. Not yet sure about any futher details about dependencies or if a package manager will be integrated into the binary but we'll see.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.