GitXplorerGitXplorer
j

lox

public
9 stars
1 forks
11 issues

Commits

List of commits on branch master.
Unverified
1a7e7ff16a73727f6a19ed0fc6c4845d840da4be

add grammar files

jjyn514 committed 4 years ago
Verified
b6038fc10ef653f92582270522a2e842089f6959

add pre-increment and decrement

jjyn514 committed 6 years ago
Verified
198529bfc73504c2349982454c94506cbd1370d5

show bad line on error

jjyn514 committed 6 years ago
Verified
e7f3df31bcb8c36204f7c21b9acb6255dbb79aa5

bugfixes

jjyn514 committed 6 years ago
Verified
d9925bec8bfeee7c86f91defedb122c0af8c4401

add unicode support

jjyn514 committed 6 years ago
Verified
42d133e4afea69308cf50fd02babeaa69c57dcfc

fix functions

jjyn514 committed 6 years ago

README

The README file for this repository.

Travis CI status

Dependencies

  • Java 9+ (because Map.of is too nice to live without)
  • llvm
    • lli for the REPL
    • clang for outputting an executable. Despite what it looks like, clang does not compile any code, it just assembles and links the .ll file. This is because the equivalent shell script is both 6 lines and system dependant.

Optional dependencies

  • libreadline (for readline in the REPL)

Differences from upstream:

Lexer

  • allows escape characters
  • allows numbers to start with a '.'
  • disallows multi-line strings
  • logs column as well as line number on error
  • logs multiple illegal tokens in a row as a single error
  • use 'null' instead of 'nil'
  • use c-style function declarations instead of 'fun'
  • adds several operators:
    • unaries (PLUS_PLUS, MINUS_MINUS)
    • bitwise functions (PIPE, AMPERSAND, PERCENT, CARET)
    • enhanced assignment (PLUS_EQUAL, MINUS_EQUAL, STAR_EQUAL, SLASH_EQUAL, DOT_EQUAL, CARET_EQUAL, PERCENT_EQUAL, AMPERSAND_EQUAL)