All Projects → SebastianMestre → Jasper

SebastianMestre / Jasper

Licence: lgpl-2.1
(alpha, do not use) -- A programming language, meant to be a simpler and nicer Javascript.

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
Neon
🍸 Encodes and decodes NEON file format.
Stars: ✭ 674 (+1673.68%)
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
Readr
Read flat files (csv, tsv, fwf) into R
Stars: ✭ 821 (+2060.53%)
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
Errorstacks
Tiny library to parse error stack traces
Stars: ✭ 29 (-23.68%)
Mutual labels:  parsing
Samovar
Stars: ✭ 23 (-39.47%)
Mutual labels:  parsing
Jasper Programming Language logo

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].