Skip to content

EpicPix/zProl

Repository files navigation

zProl

Z Programming Language

For actual usage check the wiki.

Ideas/Proposals for this language create at https://zprol.epicpix.dev/

You can also run zProl online on https://zprol.epicpix.dev/runner

Self Hosting

Updating zProl to be completely self-hosted might add or remove features, which might include rewriting the whole zpil format

Current progress:

  • Lexing
    • Error Support
    • Tokens
      • Identifiers
        • Keywords
      • Operators
      • Comments
      • Whitespace
      • Numbers
      • String
  • Parsing
    • Error Support
    • AST
      • Expression
      • Correct Operator Order
      • Negative Numbers
  • Compiling
    • Error Support
    • Constant Evaluation
    • Classes
    • Fields
    • Functions
      • Impossible Code Removal
  • zpil format
    • String Table
    • Classes
    • Fields
    • Functions
      • Bytecode
  • Target Generation
    • x86_64 Assembly for Linux
      • Inlining functions
      • Simplifying code

HTTP Api

You can run zProl online using an api which is on https://zprol.epicpix.dev/api/v1/run

You have to use the POST method with the Content-Type set to application/json.

There must be either code or code_url defined in the json. Optional values:

  • when debug is set to true then it disables optimizations.
  • when get_assembly is set to true then instead of running the code, the api provides the assembly code for x86_64

The program result will be in run and in commit there will be the currently running commit.

Maven Repository

To use parts of this project like zprol-parser you can use my repository

<repositories>
    <repository>
        <id>epicpix</id>
        <name>EpicPix</name>
        <url>https://maven.epicpix.dev/releases/</url>
    </repository>
</repositories>

and then to use zprol-parser you can do

<dependencies>
    <dependency>
        <groupId>ga.epicpix</groupId>
        <artifactId>zprol-parser</artifactId>
        <version>1.0.8</version>
    </dependency>
</dependencies>

To check all other available modules you can check my maven repository

About

Custom language, because I got bored

Resources

License

Stars

Watchers

Forks

Languages