-
Notifications
You must be signed in to change notification settings - Fork 3
Especificación
Ulises Gascón edited this page Sep 5, 2017
·
20 revisions
- Current version: 0.0.1-draft
- Wiki
- Open Discussions
Variable
La definición es así:
definir @numero1 = 1
En js se traduce como:
var numero1 = 1;Variable
La definición es así:
definir @numero1 = 1
En js se traduce como:
var numero1 = 1;- Operandos: Una variable, una propiedad, un numero o un string (@aZ|@aZ@aZ|-?0-9|""|'')
- Operadores: Todos los lógicos y matemáticos
Una expresión consiste en la sucesión de operandos y operadores o un solo operando, o una llamada a procedimiento/función
- No puede definirse variables vacías
definir @algoo equivalentesnull(definir @algo = null),undefined(definir @algo = undefined), etc...
Las sentencias pueden ser:
[definir] @numero = {expresion}\n // define una variable con su valor, se trataran todas como globales
[definir] @persona\n // define un objeto literal, inicia un bloque
[definir] @lista = {expresion} (y|,) {expresion} [(y|,) {expresion}]\n // define una lista
si {expresion}\n // if, inicia un bloque
pero si {expresion}\n // elseif, requiere if, inicia un bloque
si no\n // else, requiere if, inicia un bloque, implica !elseif
repetir {expresion:int} [veces]\n // for(contador), inicia un bloque
repetir si {expresion}\n // while, inicia un bloque
por cada @value en @values\n // foreach, mientras que @values sea una lista, @value toma secuancialmente cada valor de la misma
[procedimiento] #multiplicar [@uno [(y|,) @dos]]\n // definición de funcion, inicia un bloque
#multiplicar [{expresion} [(y|,) {expresion}]] // llamada a funcion (es valida como expresion pero no combinable)
Sentencia precedida de tabulacion:
\t+{sentencia}\n
El nivel de tabulación solo puede ser 0 o un nivel mayor o igual a la linea anterior
Si es un nivel mayor debe estar abierto algun tipo de bloque
Solo en el caso del objeto literal se limitan las sentencias posibles dentro del bloque a declaraciones de variables
Operadores:
Logicos: Todos los operadores logicos pueden ir en su forma simbolica como en lenguaje natural, todos siguen la misma regla:
>=
es mayor o igual que
mayor o igual que
mayor o igual
Matematicos: los operadores matematicos se usaran preferentemente en su forma simbolica, pero podran ser:
- | menos
+ | mas
* | por | multiplicado por
/ | dividido | dividido entre
% | resto | resto entre