RawParser
zx
RawParser | zx | |
---|---|---|
3 | 115 | |
8 | 41,743 | |
- | 2.7% | |
0.0 | 8.5 | |
almost 2 years ago | 9 days ago | |
C | JavaScript | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
RawParser
-
Literate programming is much more than just commenting code
I have started working on a program that can parse Markdown files with fragments of C code and weave those fragments into a C program that can be compiled. For an example input, see https://github.com/FransFaase/RawParser#documentation
- Show HN: JWEB (a modern implementation of the CWEB Literate Programming system)
-
Show HN: Carburetta – C/C++ Fused Scanner and Parser Generator
The distinction between a scanner and a parser is somewhat arbitrary. One could use one and the same formalism for it. The scanner usually deals with things that are considered 'atomic' elements in the language, while grammar is used for 'compound' elements consisting of one or more other elements. If there are seen as one and the same, than it naturally flows that the scanner is called from the parser, and not how it is traditionally done, that the scanner acts as a first pass. This seems a logical approach, but in practices, when scanning is context sensitive, requires the implementation of all kinds of hacks. Also, the treatment of keywords (where it is possible that they are case insensitive) it is better to have a grammar for parsing a keyword 'identifier' and a check whether the result matches the keyword. For pure performance this would not be the best solution, but I understand that Carburetta is not design for that. I have been developing a parser that makes no distinction between scanning and parsing in C, which I called RawParser: https://github.com/FransFaase/RawParser . It also offers more powerful grammar constructs and gives examples on how to implement memory management in a uniform way.
zx
-
How and why do we bundle zx?
When zx first appeared, it was a tiny esm script that just proposed a new idea for how child_process.spawn API could be enhanced with string template literals.
- Zx 8.0
- Google ZX – A tool for writing better scripts
-
Dax – Cross-platform shell for Node.js
TIL about zx! https://github.com/google/zx
This suite of tools feels indispensable. Anything to keep me from having to write/maintain bash scripts that are more than a series of commands.
-
The Bun Shell
Great point! According to https://github.com/oven-sh/bun/blob/b433beb016470b87850f3c01..., Bun Shell took inspiration from zx[0], dax[1] and bnx[2]
[0]: https://github.com/google/zx
[1]: https://github.com/dsherret/dax
[2]: https://github.com/wobsoriano/bnx
- Zx: A tool for writing better scritps
-
My script to install husky, commitlint and lint-staged with zx
If you want test it, you can run this script withzx :
-
YavaScript: Write shell scripts in JavaScript/TS instead of bash
I really love writing with zx. https://github.com/google/zx
We have some folks who have gone wild copy-pasting random fancy bash snippets into various developer helpers scripts. Zx did like 90% of that stuff out of the box, without being a pile of chaotic custom bash.
-
Scripting with Go: A Modest Proposal
I ended up using this for my cli scripting needs. https://github.com/google/zx
- And forget about shell scripting in /bin/sh ... I hate to say it, but, this is the middle of 2021 we have react and svelte we need more /etc/shells, we need modern languages all over, we can't do this anymore
What are some alternatives?
clerk - ⚡️ Moldable Live Programming for Clojure
shelljs - :shell: Portable Unix shell commands for Node.js
sicmutils - Computer Algebra, Physics and Differential Geometry in Clojure.
execa - Process execution for humans
mexdown - A lightweight integrating markup language
Commander.js - node.js command-line interfaces made easy
TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
oclif - CLI for generating, building, and releasing oclif CLIs. Built by Salesforce.
deno - A modern runtime for JavaScript and TypeScript.
xonsh - :shell: Python-powered, cross-platform, Unix-gazing shell.
Commander - Compose beautiful command line interfaces in Swift
nx - Smart Monorepos · Fast CI