s-viour / codebake Goto Github PK
View Code? Open in Web Editor NEWcyberchef inspired toy
License: MIT License
cyberchef inspired toy
License: MIT License
currently, trying to type a negative number results in an "unexpected symbol" error. this needs to be fixed in the lisp parser
currently, lisp code like this won't work due to closing parenthesis being on multiple lines.
(defn my-function (x)
((rot13 x) (dish "hello world)))
pretty much every lisp in existence lets you write '(1 2 3)
instead of (quote (1 2 3))
. this issue depends on the rewrite of the reader (#12)
right now, all the error messages are basically from the tutorial I used to build the lisp. I'd like to make all these a little more descriptive. in the future, we can look into using ariadne to provide real diagnostics
currently and hilariously, the lisp is parsed pretty badly. in fact, the whole lisp is tokenized using a single massive regex and i've forgotten how it works. we need to rewrite (more or less) the entire lisp reader. the simple fact that it's parsed so badly is preventing us from adding features to the lisp like #10. this should be addressed ASAP.
chumsky might be really useful in implementing this, so look into that.
tracking issue. we'd like to have implemented almost all operations that Cyberchef implements as well. this issue provides a list of everything we're currently working on:
Data Format:
to-hexdump
from-hexdump
to-hex
from-hex
to-charcode
from-charcode
to-decimal
from-decimal
to-binary
from-binary
to-octal
from-octal
to-base32
from-base32
to-base64
from-base64
to-base85
from-base85
url-encode
url-decode
this should probably be implemented as an operation that takes a filename as a string and attempts to open it and read the data. obviously on failure just return "file not found" or "no permissions" or some informative error message. if this succeeds, it should attempt to guess the format of the file and load it as textual data if reasonable. otherwise just default to binary data.
we'd like to be able to declare a dish literally instead of using the dish
constructor. ideally it'd look something like d"hello world"
or even `hello world`
. additionally, we should aim to support byte-constructed dish literals via something similar: d[68 65 6c 6c 6f]
.
since the parser replaces all (
and )
characters with (
and )
, this ends up breaking regex capture groups in any regex ops. this is likely a symptom of the relatively hack-y parser, and we should look into rewriting the lisp's parser using a more robust approach (like a parsing library)
currently, we only have tests covering 6 of the 16 (at the time of writing) operations currently implemented. these tests are: to-octal
, from-octal
, to-hex
, from-hex
, from-binary
, to-binary
. all other operations do not have tests implemented for them!
currently, the documentation for adding new operations is entirely in comments at the top of source files. we should have a wiki page for this with better worded explanations and code examples to make learning about this process as easy as possible.
implement the most commonly used operations in the Data Format section of Cyberchef
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.