SebastianMestre / Jasper
Licence: lgpl-2.1
(alpha, do not use) -- A programming language, meant to be a simpler and nicer Javascript.
Stars: ✭ 38
Programming Languages
cpp14
131 projects
Labels
Projects that are alternatives of or similar to Jasper
Meriyah
A 100% compliant, self-hosted javascript parser - https://meriyah.github.io/meriyah
Stars: ✭ 690 (+1715.79%)
Mutual labels: parsing
Feedkit
An RSS, Atom and JSON Feed parser written in Swift
Stars: ✭ 895 (+2255.26%)
Mutual labels: parsing
Comby
A tool for structural code search and replace that supports ~every language.
Stars: ✭ 912 (+2300%)
Mutual labels: parsing
Esprima
ECMAScript parsing infrastructure for multipurpose analysis
Stars: ✭ 6,391 (+16718.42%)
Mutual labels: parsing
Rust Peg
Parsing Expression Grammar (PEG) parser generator for Rust
Stars: ✭ 836 (+2100%)
Mutual labels: parsing
Jkt
Simple helper to parse JSON based on independent schema
Stars: ✭ 22 (-42.11%)
Mutual labels: parsing
Domainname Parser
🏬 .NET domain name parsing library (uses publicsuffix.org)
Stars: ✭ 31 (-18.42%)
Mutual labels: parsing
Fuzi
A fast & lightweight XML & HTML parser in Swift with XPath & CSS support
Stars: ✭ 894 (+2252.63%)
Mutual labels: parsing
Probtopdf
Turn online textbook into Exam-friendly, offline, searchable PDF
Stars: ✭ 27 (-28.95%)
Mutual labels: parsing
Ason
[DEPRECATED]: Prefer Moshi, Jackson, Gson, or LoganSquare
Stars: ✭ 777 (+1944.74%)
Mutual labels: parsing
Forma
Typespec based parsing of JSON-like data for Elixir
Stars: ✭ 23 (-39.47%)
Mutual labels: parsing
Phonelib
Ruby gem for phone validation and formatting using google libphonenumber library data
Stars: ✭ 731 (+1823.68%)
Mutual labels: parsing
Got Reload
Reload Go code in a running process at function/method level granularity, using Yaegi
Stars: ✭ 29 (-23.68%)
Mutual labels: parsing
Pydantic
Data parsing and validation using Python type hints
Stars: ✭ 8,362 (+21905.26%)
Mutual labels: parsing
Moment.php
Parse, validate, manipulate, and display dates in PHP w/ i18n support. Inspired by moment.js
Stars: ✭ 900 (+2268.42%)
Mutual labels: parsing
React Native Parsed Text
Parse text and make them into multiple React Native Text elements
Stars: ✭ 969 (+2450%)
Mutual labels: parsing
Jasper
Jasper is a scripting language inspired by Haskell, Javascript, and modern C++. Jasper can be embedded in C++ applications.
The aim of Jasper is to be:
- Nice to use
- Easy to refactor
- Consistent
For this purpose, Jasper has:
- Type deduction
- First class functions
- Consistent and context-free syntax
- Syntactic sugar
- Many others
Here is an example piece of code:
or_default := fn(str, default) =>
(if str == ""
then default
else str);
make_greeting := fn(prefix, suffix) =>
fn(name) =>
prefix + name + suffix;
say_hello := fn(name) {
greeting := make_greeting("Hello, ", "!");
return name
|> or_default("Friend")
|> greeting();
};
__invoke := fn() {
return say_hello("World");
};
Using the interpreter
First, you have to compile it using the following command:
make interpreter
Once it is compiled, you can find the executable under bin/jasperi
, and execute
it following the user guide, which can be found in multiple languages in the
docs
directory.
NOTES: Our Makefile uses non-standard features of gnu make
Jasper is written in C++14, so you will need a C++14 compatible compiler, such as GCC 6.1 or later
Running the tests
We also have small test suite, which can be compiled with
make tests
and then run with
./bin/run_tests
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].