Skip to content

A small concatenative stack-based dynamically-typed interpreted scripting language.

License

Notifications You must be signed in to change notification settings

Marco4413/Pulsar

Repository files navigation

Pulsar

logo

A small concatenative stack-based dynamically-typed interpreted scripting language.

The main purpose of this language is to be an alternative to CSS in an highly anticipated upcoming JavaScript Framework, which will revolutionize the Web as we know it by exposing the, still untouched, performance of modern web browsers.

Not really. It's just another side-project of mine. I wanted to have a second attempt at creating a programming language.

Language Documentation

It can be found at docs/LANGUAGE.

Editor Extensions

If you want to enable Syntax Highlighting on VSCode for the Pulsar Language, you can download and package the official extension found at Marco4413/vscode-pulsar-language.

Dependencies

None!

Except for the pulsar-demo and pulsar-tools projects which use fmt for pretty printing.

The Language itself has no dependencies except for the C++20 standard library.

Building

This project uses premake5 as its build system.

Run premake5 vs2022 to create solution files for VS.

Alternatively premake5 gmake2 will create Makefiles.

C++20 is the standard used by the project. Supported compilers are gcc and msvc.

clang should also work but it's not my go-to compiler, so it may break between commits.

Examples

They're within the examples folder.

Running Examples

The new pulsar-tools project is the preferred way of running examples. In fact, it's the CLI tool for Pulsar.

See the Building section.

After building pulsar-tools, you'll be able to run it with no arguments to print its usage. The default settings are the ones used for the examples.

TL;DR: After building pulsar-tools, you'll be able to:

$ pulsar-tools run path/to/pulsar/file.pls

If an example requires external arguments, just append them to the command.

Including Pulsar in your Project

There's a fully working demo within the pulsar-demo project. You can check out the premake5.lua script and the source code within src/pulsar-demo