The Marcel Programming Language
1.
Getting Started
1.1.
Installation
1.2.
Hello World
2.
Language Specification
2.1.
Syntax
2.1.1.
Comments
2.1.2.
Identifier rules
2.2.
Variables
2.3.
Types
2.3.1.
Primitives
2.3.2.
Objects
2.3.3.
String
2.3.4.
Arrays
2.3.5.
Collections
2.3.6.
Collection of Primitives
2.3.7.
Maps
2.3.8.
Ranges
2.3.9.
Dynamic Objects
2.4.
Control Flows
2.4.1.
Marcel Truth
2.4.2.
If/Else Statements
2.4.3.
While loops
2.4.4.
For loops
2.4.5.
Switch and When
2.4.6.
Exception Handling
2.5.
Source File Structure
2.5.1.
Imports
2.5.2.
Visibility and Access
2.5.3.
Functions
2.5.4.
Classes
2.5.5.
Enums
2.5.6.
Script
2.5.7.
Annotations
2.6.
Operators
2.6.1.
Plus (+)
2.6.2.
Minus (-)
2.6.3.
Left Shift (<<)
2.6.4.
Comparison Operators
2.6.5.
As (Type casting)
2.6.6.
Instance Of (Type Checking)
2.6.7.
Indexed Access (expr[index])
2.6.8.
Safe Navigation (?.)
2.6.9.
Ternary and Elvis (?:)
2.6.10.
Direct Field Access (@)
2.6.11.
Define your own operators
2.7.
Iterable Operations
2.7.1.
Map/Filter
2.7.2.
Any/All
2.7.3.
Find
2.7.4.
Chain operations
2.8.
Lambdas
2.9.
Extension Classes
3.
Meta Programming
3.1.
Meta Annotations
3.1.1.
@stringify
3.1.2.
@comparable
3.1.3.
@data
3.1.4.
@cached
3.1.5.
@lazy
4.
Asynchronous Programmming
5.
Guides
5.1.
Collections
5.2.
Regular Expressions
6.
Tools
6.1.
MarCL - Marcel's Command Line tool
6.2.
Marshell - Marcel Shell
6.2.1.
Initialization Script
6.3.
Marcel for Android
6.4.
Dumbbell - Marcel's Dependency Manager
6.5.
Maven Plugin for Marcel
6.6.
IntelIJ Plugin for Marcel
7.
Marcel In Action
7.1.
Fibonacci suite
7.2.
Advent of code
Light
Rust
Coal
Navy
Ayu
The Marcel Programming Language
Language Specification
In this section, you'll learn all the little secrets of MarcelLang.