3. The language
Project source code is available at https://github.com/GaijinEntertainment/quirrel
- 3.1. Lexical Structure
- 3.2. Values and Data types
- 3.3. Execution Context
- 3.4. Statements
- 3.4.1. Block
- 3.4.2. Control Flow Statements
- 3.4.3. Loops
- 3.4.4. break
- 3.4.5. continue
- 3.4.6. return
- 3.4.7. yield
- 3.4.8. Local variables declaration ( local )
- 3.4.9. Named bindings declaration ( let )
- 3.4.10. Function declaration
- 3.4.11. Class declaration
- 3.4.12. try/catch
- 3.4.13. throw
- 3.4.14. const
- 3.4.15. enum
- 3.4.16. Expression statement
- 3.5. Expressions
- 3.5.1. Assignment
- 3.5.2. Operators
- 3.5.2.1. ?: Operator
- 3.5.2.2. ?? Null-coalescing operator
- 3.5.2.3. ?. and ?[] - Null-propagation operators
- 3.5.2.4. Arithmetic
- 3.5.2.5. Relational
- 3.5.2.6. 3 ways compare
- 3.5.2.7. Logical
- 3.5.2.8. in operator, not in operator
- 3.5.2.9. instanceof operator
- 3.5.2.10. typeof operator
- 3.5.2.11. Bitwise Operators
- 3.5.2.12. Operators precedence
- 3.5.3. Table Constructor
- 3.5.4. clone
- 3.5.5. Array contructor
- 3.6. Tables
- 3.7. Arrays
- 3.8. Functions
- 3.9. Classes
- 3.10. Generators
- 3.11. Constants & Enumerations
- 3.12. Destructuring assignment
- 3.13. $ - String interpolation
- 3.14. Threads
- 3.15. Weak References
- 3.16. Metamethods
- 3.17. Built-in Functions
- 3.18. Complier directives
- 3.19. List of Complier directives
- 3.19.1. Strict booleans
- 3.19.2. Implicit bool expressions
- 3.19.3. Disable root fallback
- 3.19.4. Enable root fallback
- 3.19.5. Force explicit access to ‘this’
- 3.19.6. Allow implicit access to ‘this’
- 3.19.7. Disable function declaration sugar
- 3.19.8. Allow function declaration sugar
- 3.19.9. Disable class declaration sugar
- 3.19.10. Allow class declaration sugar
- 3.19.11. Disable access to root table via
::
- 3.19.12. Enable access to root table via
::
- 3.19.13. Disable implicit string concatenation
- 3.19.14. Enable plus string concatenation
- 3.19.15. #strict
- 3.19.16. #relaxed