The Iris environment consist of the Iris programming language and various domain specific languages, which have as objective facilitate certain tasks, such as Cornea language, in charge of managing the project configuration, or the Pupil language, similar to Iris but specialised in GPU computing.
It also consists of three console commands: version, create, and compile.
All the characters specified in this alphabet are conforming to the UTF-8 encoding standard.
An alpha character could be any of the following:
_, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z
A numeric character could be any of the following:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
An alphanumeric character could be any of the following:
_, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
The program is not well formed according to this specification and will output an error
It's the acronym of Domain Specific Language. These are designed to achieve specific tasks, easier.
A character(';') that specifies the end of a sentence.
A character('.') that acts as a delimiter.
A sequence of interleaved delimiters and numeric characters, with an end of sentence character indicating its end.
If just after a delimiter, another delimiter is found, a numeric character '0' will be inserted between both delimiters.
If just after a delimiter, an end of sentence is found, a numeric character '0' will be inserted between both the delimiter and the end of sentence.
Specifies the measurement unit, which is used as the time output unit. Can be one of the following:
nanoseconds
microseconds
milliseconds
Microseconds is the default measure unit.
A collection of non-repeating objects.
The set of positive integer numeric characters, including zero.
The set of positive integer numeric characters, excluding zero.
A sequence of no characters or UTF-8 characters surrounded by ":
"my_literal_string"
The version command is the option to print the version of the running iris compiler.
version
The create command is the option to create the project with the specified name after the '-' character.
If any of the characters of the project name isn't alphanumeric, the program is ill-formed.
If the project name contains only numeric characters, the program is ill-formed.
create-yve
This will create the following project folder:
and inside the project folder, the following project structure:
and inside the '.cver' & '.eye' extension file, the following contents:
We will explain the formats of these domain-specific languages later.
If the project folder or any of the items of the project structure couldn't be created, the program is ill-formed.
The compile command is the option to compile the project with the specified name after the '-' character.
If any of the characters of the project name isn't alphanumeric, the program is ill-formed.
If the project name contains only numeric characters, the program is ill-formed.
compile-yve
This will compile the specified project folder.
If the project folder or any of the items of its project structure is missing, the program is ill-formed.
The C-Ver DSL has an extension of '.cver', and its main mission is to provide the way to specify the compiler version.
It consists of three keywords:
compiler_versionmeasureauthor
compiler_version = [Version];It specifies the version of the compiler to use for the compilation process. The compiler version inherently indicates the languages versions.
If the version isn't one of the following, the program is ill-formed:
0.0.1 compiler_version = 0.0.1;measure = [Measure Unit];It specifies the time measure unit.
If the measure unit isn't a valid measure unit, the program is ill-formed.
measure = milliseconds;indentation = [Natural number, zero-exclusive];Specifies the indentation space when the character \t is present.
indentation = 4;


