Unlabels
Jump to navigation
Jump to search
"Why sit around and think of a label?" is the tag line of Unlabels, the language that follows C syntax (almost) where you don't have to label a single object.
int (mut int ) {
++;
return ;
}
mut int = 3;
( );
This language was designed to be easy for every C/C++/C# coder who has a hard time naming their variables.
Example
The following is an example of main.unlb:
celpack Celpack.clpk;
int () {
int mut = 10;
while ( < 20) {
++;
}
return ;
}
Celpack::
IO::
("My variable is now 20.");
(For reference, the CELPACK file [similar to package.json or Cargo.toml] looks like this:)
TYPE=Celpack,
Dependents="main.unlb",
Packages={
import CelerySTD::IO:: as ' (,string)';
},
CelpackVersion=3.5.0;
And the CELERY file looks like this when main.unlb is compiled:
; CeleryVersion=6.0 token+,
; File: 'main.unlb',
; CelpackInfo: {
; UsesCelpack: True,
; FileName: 'Celpack.clpk',
; CelpackVersion: this.FileName.Tokens[CelpackVersion],
; Packages: {
; CelerySTD ^? IO ^? ' ' -> FunctionDef: ' (,string)'
},
; Dependents: {
; 'main.unlb'
},
; Type: CELPACK
},
; Code: {
; DependsOn: Celpack, -> this.parent.CelpackInfo,
; _function: {
; ReturnType: 'int',
; Label: '&null',
; @variable: {
; Type: 'int',
; IsMutable: True,
; Label: '&null',
; Value: 10
},
; Loop: {
; Type: 'DoWhile',
; Condition: this.<.@variable.Value True:LessThan value: 20,
; UntilStopped: {
this.<.@variable.Value Increment
},
},
; Return: this.<.@variable.Value
},
; _function Celpack IO::' (,string)' -> (String "My variable is now 20.")
}