Skip to content

Commit

Permalink
Merge pull request #111 from ortus-boxlang/development
Browse files Browse the repository at this point in the history
v1.0.0-Beta15
  • Loading branch information
lmajano authored Sep 20, 2024
2 parents 8c2755c + 742abf3 commit 7a42ddf
Show file tree
Hide file tree
Showing 136 changed files with 5,671 additions and 4,404 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ env:

jobs:
tests:
if: "!contains(github.event.head_commit.message, 'skip tests')"
name: Tests ${{ github.event.repository.name }}
if: "!contains(github.event.head_commit.message, 'skip tests')"
name: "Test on ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
env:
DB_USER: root
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# ⚡︎ Project Jericho - BoxLang
# ⚡︎ Project Jericho - BoxLang JVM Language

> A next generation multi-runtime dynamic programming language for the JVM. InvokeDynamic is our first name!
Expand All @@ -23,7 +23,7 @@ Holy Ghost which is given unto us. ." Romans 5:5

----

**BoxLang** is a modern dynamic JVM language that can be deployed on multiple runtimes: operating system (Windows/Mac/*nix/Embedded), web server, lambda, iOS, android, web assembly, and more. **BoxLang** combines many features from different programming languages, including Java, ColdFusion, Python, Ruby, Go, and PHP, to provide developers with a modern and expressive syntax.
**BoxLang** is a modern dynamic JVM language that can be deployed on multiple runtimes: operating system (Windows/Mac/*nix/Embedded), web server, lambda, iOS, android, web assembly, and more. **BoxLang** combines many features from different programming languages, including Java, CFML, Python, Ruby, Go, and PHP, to provide developers with a modern and expressive syntax.

**BoxLang** has been designed to be a highly adaptable and dynamic language to take advantage of all the modern features of the JVM and was designed with several goals in mind:

Expand Down Expand Up @@ -54,7 +54,7 @@ Apache License, Version 2.0.

## Open-Source & Professional Support

This project is a professional open source project and is available as FREE and open source to use. Ortus Solutions, Corp provides commercial support, training and commercial subscriptions which include the following:
This project is a professional open source project and is available as FREE and open source to use. Ortus Solutions, Corp provides commercial support, training and commercial licenses which include the following:

* Professional Support and Priority Queuing
* Remote Assistance and Troubleshooting
Expand Down
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ sourceSets {
include '**/*.json'
include '**/*.bx*'
include '**/*.css'
include '**/*.js'
include '**/*.cf*'
include '**/META-INF/services/*'
}
Expand Down
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Fri Sep 06 12:03:20 UTC 2024
#Fri Sep 13 11:16:52 UTC 2024
antlrVersion=4.13.1
jdkVersion=21
version=1.0.0-beta14
version=1.0.0-beta15
17 changes: 12 additions & 5 deletions src/main/antlr/BoxScriptGrammar.g4
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ componentName
:
// Ask the component service if the component exists and verify that this context is actually a component.
{ isComponent(_input) }? identifier
//identifier
;

// These are reserved words in the lexer, but are allowed to be an indentifer (variable name, method name)
Expand Down Expand Up @@ -50,6 +51,7 @@ reservedKeyword
| FINAL
| FINALLY
| FOR
// | FUNCTION TODO: Brad
| FUNCTION
| IF
| IMPORT
Expand All @@ -66,12 +68,14 @@ reservedKeyword
| PARAM
| PRIVATE
| PROPERTY
//| PROPERTY TODO: Brad
| PUBLIC
| QUERY
| REMOTE
| REQUEST
| REQUIRED
| RETHROW
//| RETURN TODO: Brad
| RETURN
| SERVER
| SETTING
Expand Down Expand Up @@ -163,7 +167,7 @@ interface
;

// UDF or abstractFunction
function: functionSignature postAnnotation* normalStatementBlock? SEMICOLON*
function: functionSignature postAnnotation* ( ( normalStatementBlock? SEMICOLON*) | SEMICOLON)
;

// public String myFunction( String foo, String bar )
Expand Down Expand Up @@ -234,7 +238,7 @@ functionOrStatement: function | statement

// property name="foo" type="string" default="bar" inject="something";
// Because a property is not seen as a normal statement, we have to add SEMICOLON here :(
property: preAnnotation* PROPERTY postAnnotation* SEMICOLON*
property: preAnnotation* PROPERTY postAnnotation* SEMICOLON+
;

// /** Comment */
Expand Down Expand Up @@ -307,8 +311,11 @@ simpleStatement: break | continue | rethrow | assert | param | return | not
not: NOT expression
;

// http url="google.com" {}?
component: componentName componentAttribute* (normalStatementBlock | SEMICOLON)
// bx:http url="google.com" {}?
component
:
// COMPONENT_PREFIX componentName componentAttribute* (normalStatementBlock | SEMICOLON)
componentName componentAttribute* (normalStatementBlock | SEMICOLON)
;

componentAttribute: identifier ((EQUALSIGN | COLON) expression)?
Expand Down Expand Up @@ -363,7 +370,7 @@ if: IF LPAREN expression RPAREN ifStmt = statementOrBlock (ELSE elseStmt = state
for
: preFix? FOR LPAREN (
VAR? expression IN expression
| expression? SEMICOLON expression? SEMICOLON expression?
| intializer = expression? SEMICOLON condition = expression? SEMICOLON increment = expression?
) RPAREN statementOrBlock
;

Expand Down
2 changes: 2 additions & 0 deletions src/main/antlr/BoxScriptLexer.g4
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,8 @@ BITWISE_SIGNED_LEFT_SHIFT : 'b<<';
BITWISE_SIGNED_RIGHT_SHIFT : 'b>>';
BITWISE_UNSIGNED_RIGHT_SHIFT : 'b>>>';

COMPONENT_PREFIX: 'bx:';

// ANY NEW LEXER RULES FOR AN ENGLISH WORD NEEDS ADDED TO THE identifer RULE IN THE PARSER

ICHAR_1 : '#' {_modeStack.contains(hashMode)}? -> type(ICHAR), popMode, popMode;
Expand Down
Loading

0 comments on commit 7a42ddf

Please sign in to comment.