Sen descrición

Rodrigo Garcia 284f9cf13e Licencia e instrucciones basicas %!s(int64=8) %!d(string=hai) anos
.gitignore 95bb104997 Commit inicial: [+] instruccion mostrar %!s(int64=8) %!d(string=hai) anos
README.md 284f9cf13e Licencia e instrucciones basicas %!s(int64=8) %!d(string=hai) anos
automatas.py 284f9cf13e Licencia e instrucciones basicas %!s(int64=8) %!d(string=hai) anos
compilador_rpc.py f385117967 [+] Automatas por cadenas se pueden definir con expresiones regulares, pero no funcionana del todo aun %!s(int64=8) %!d(string=hai) anos
interprete_rpc.py 284f9cf13e Licencia e instrucciones basicas %!s(int64=8) %!d(string=hai) anos
notas.html f385117967 [+] Automatas por cadenas se pueden definir con expresiones regulares, pero no funcionana del todo aun %!s(int64=8) %!d(string=hai) anos

README.md

Compilador lenguaje rpc

Un diminuto lenguaje de pruebas de concepto.

LICENCIA: GPLv3.

Ver interprete diminuto, Funciona con python3

python3 interprete_rpc.py

Instrucciones

mostrar

mostrar "texto cualquiera".
mostrar variable.

similar a print "texto cualquiera", print var1

Gramatica

W = {a,..,z,A,..,Z} vars = {{W},0,..,9,_} ascii = valores ascii

P:   mostrar X|mostrar V
X->   "T
T->  [ascii1]*F
F->  "FF
V->  [W][vars]*FF
FF-> .

Automata

   'mostrar '    '"'    [ascii1]*   '"'      '.'
(0)--------->(1)---->(2)-------->(3)---->(4)----->((5))
               \ [W][vars]*        '.'            ^
                ------------>(6)------------------/

Declarar enteros

entero X=<valor entero>.

Gramatica

P:   entero V
V->  [W][vars]*I
I->   = V|= V| =V|=V
V->  [0-9]*FF
FF-> .

Automata

    'entero '   [W][vars]*      = V|= V| =V|=V     [0-9]*     '.'
(0)--------->(1)------------>(2)---------------->(3)------->(4)---->((5))

Asignar entero

var = <valor entero>.

Gramatica

P:   [W][vars]*I
I->   = N| =N|= N|=N
N->  [0-9]*FF
FF-> .

Automata

   [W][vars]*       = N| =N|= N|=N    [0-9]*      '.'
(0)------------>(1)--------------->(2)------>(3)----->((4))

Incrementar entero 1 unidad

var++.

Gramatica

P: [W][vars]*'++'

Automata

   [W][vars]*     '++'
(0)----------->(1)------>((2))

Decrementar entero 1 unidad

var--.

Gramatica

P: [W][vars]*'--'

Automata

   [W]+[vars]*      '--'
(0)------------>(1)----->((2))