Graphomata

Sandbox (Custom Levels) AngelScript Dialect

Supported

Unsupported

Supported Syntax*

SCRIPT⟶(CLASS | INTERFACE | ;)*
CLASS INTERFACE ;
INTERFACE⟶interface IDENTIFIER (; | ((: IDENTIFIER (, IDENTIFIER)*)? { INTFMTHD* }))
interface IDENTIFIER ; : IDENTIFIER , { INTFMTHD }
CLASS⟶(abstract | final)* class IDENTIFIER (; | ((: IDENTIFIER (, IDENTIFIER)*)? { (FUNC | VAR)* }))
abstract final class IDENTIFIER ; : IDENTIFIER , { FUNC VAR }
FUNC⟶(private | protected)? (TYPE &?)? IDENTIFIER PARAMLIST const? FUNCATTR (; | STATBLOCK)
private protected TYPE & IDENTIFIER PARAMLIST const FUNCATTR ; STATBLOCK
VAR⟶(private|protected)? TYPE IDENTIFIER (( = (INITLIST | EXPR)) | ARGLIST)? (, IDENTIFIER (( = (INITLIST | EXPR)) | ARGLIST)?)* ;
private protected TYPE IDENTIFIER = INITLIST EXPR ARGLIST , ;
INTFMTHD⟶TYPE &? IDENTIFIER PARAMLIST const? ;
TYPE & IDENTIFIER PARAMLIST const ;
STATBLOCK⟶{ (VAR | STATEMENT)* }
{ VAR STATEMENT }
PARAMLIST⟶( (void | (TYPE TYPEMOD (... | IDENTIFIER? (= EXPR)?) (, TYPE TYPEMOD (... | IDENTIFIER? (= EXPR)?))*))? )
( void TYPE TYPEMOD ... IDENTIFIER = EXPR , )
TYPEMOD⟶(& (in | out | inout)?)?
& in out inout
TYPE⟶const? SCOPE DATATYPE TEMPLTYPELIST? ( ([ ]) | (@ const?) )*
const SCOPE DATATYPE TEMPLTYPELIST [ ] @ const
TEMPLTYPELIST⟶< TYPE (, TYPE)* >
< TYPE , >
INITLIST⟶{ (ASSIGN | INITLIST)? (, (ASSIGN | INITLIST)?)* }
{ ASSIGN INITLIST , }
SCOPE⟶::? (IDENTIFIER ::)* (IDENTIFIER TEMPLTYPELIST? ::)?
:: IDENTIFIER :: IDENTIFIER TEMPLTYPELIST ::
DATATYPE⟶(IDENTIFIER | PRIMTYPE | ? | auto)
IDENTIFIER PRIMTYPE ? auto
PRIMTYPE⟶void | int | int32 | uint | uint32 | float | double | bool
void int int32 uint uint32 float double bool
FUNCATTR⟶(override | final | explicit | delete)*
override final explicit delete
STATEMENT⟶(IF | FOR | WHILE | RETURN | STATBLOCK | BREAK | CONTINUE | DOWHILE | SWITCH | EXPRSTAT)
IF FOR WHILE RETURN STATBLOCK BREAK CONTINUE DOWHILE SWITCH EXPRSTAT
EXPRSTAT⟶ASSIGN? ;
ASSIGN ;
SWITCH⟶switch ( ASSIGN ) { CASE* }
switch ( ASSIGN ) { CASE }
IF⟶if ( ASSIGN ) STATEMENT (else STATEMENT)?
if ( ASSIGN ) STATEMENT else STATEMENT
FOR⟶for ( (VAR | EXPRSTAT) EXPRSTAT (ASSIGN (, ASSIGN)*)? ) STATEMENT
for ( VAR EXPRSTAT EXPRSTAT ASSIGN , ) STATEMENT
WHILE⟶while ( ASSIGN ) STATEMENT
while ( ASSIGN ) STATEMENT
DOWHILE⟶do STATEMENT while ( ASSIGN ) ;
do STATEMENT while ( ASSIGN ) ;
RETURN⟶return ASSIGN? ;
return ASSIGN ;
BREAK⟶break ;
break ;
CONTINUE⟶continue ;
continue ;
EXPR⟶EXPRTERM (EXPROP EXPRTERM)*
EXPRTERM EXPROP EXPRTERM
CASE⟶((case EXPR) | default) : STATEMENT*
case EXPR default : STATEMENT
EXPRTERM⟶((TYPE =)? INITLIST) | (EXPRPREOP* EXPRVALUE EXPRPOSTOP*)
TYPE = INITLIST EXPRPREOP EXPRVALUE EXPRPOSTOP
EXPRVALUE⟶void | CONSTRUCTCALL | FUNCCALL | VARACCESS | CAST | LITERAL | ( ASSIGN )
void CONSTRUCTCALL FUNCCALL VARACCESS CAST LITERAL ( ASSIGN )
CONSTRUCTCALL⟶TYPE ARGLIST
TYPE ARGLIST
EXPRPREOP⟶- | + | ! | ++ | -- | ~ | @
- + ! ++ -- ~ @
EXPRPOSTOP⟶(. (FUNCCALL | IDENTIFIER)) | ([ (IDENTIFIER :)? ASSIGN (, (IDENTIFIER :)? ASSIGN)* ]) | ARGLIST | ++ | --
. FUNCCALL IDENTIFIER [ IDENTIFIER : ASSIGN , ] ARGLIST ++ --
CAST⟶cast < TYPE > ( ASSIGN )
cast < TYPE > ( ASSIGN )
LITERAL⟶NUMBER | BITS | true | false | null
NUMBER BITS true false null
FUNCCALL⟶SCOPE IDENTIFIER TEMPLTYPELIST? ARGLIST
SCOPE IDENTIFIER TEMPLTYPELIST ARGLIST
VARACCESS⟶SCOPE IDENTIFIER
SCOPE IDENTIFIER
ARGLIST⟶( (IDENTIFIER :)? ASSIGN (, (IDENTIFIER :)? ASSIGN)* )
( IDENTIFIER : ASSIGN , )
ASSIGN⟶CONDITION ( ASSIGNOP ASSIGN )?
CONDITION ASSIGNOP ASSIGN
CONDITION⟶EXPR (? ASSIGN : ASSIGN)?
EXPR ? ASSIGN : ASSIGN
EXPROP⟶MATHOP | COMPOP | LOGICOP | BITOP
MATHOP COMPOP LOGICOP BITOP
MATHOP⟶+ | - | * | / | % | **
+ - * / % **
COMPOP⟶== | != | < | <= | > | >= | is | !is
== != < <= > >= is !is
LOGICOP⟶&& | || | ^^ | and | or | xor
&& || ^^ and or xor
BITOP⟶& | | | ^ | << | >> | >>>
& | ^ << >> >>>
ASSIGNOP⟶= | += | -= | *= | /= | |= | &= | ^= | %= | **= | <<= | >>= | >>>=
= += -= *= /= |= &= ^= %= **= <<= >>= >>>=
IDENTIFIER⟶starts with letter or _, can include any letter and digit, same as in C++
NUMBER⟶includes integers and real numbers, same as C++
BITS⟶binary 0b or 0B, octal 0o or 0O, decimal 0d or 0D, hexadecimal 0x or 0X
COMMENT⟶starts with // and ends with new line or starts with /* and ends with */
WHITESPACE⟶spaces, tab, carriage return, and line feed

* Grammar rules adapted from the full EBNF (copyright (c) 2003-2026 Andreas Jönsson)

Supported Keywords – General

Supported Keywords – Control Flow

Supported Keywords – Type

Supported Methods – Arrays

Unsupported Keywords