Skip to content

matiasinsaurralde/sl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sl

wercker status MIT License

Intérprete experimental de SL, basado en Go.

Ideas

  • Agregar tests y lograr que corra la mayoría de los ejemplos del libro.
  • Exponer algunas cosas de Go o incrustar C (mediante cgo).

Uso

Programa de prueba:

% cat ejemplos/holamundo.sl

/*
 * Comentario
 * De prueba
 */

var
a : numerico
b : numerico
c : numerico
x=0

ll = 1

zz=1+2

inicio
  imprimir("hola")

  imprimir("mundo")
fin

Salida:

% go run test.go
AST Test Program

Parse...

- Found a program:  hola

- Found a comment...
  Comentario
  De prueba

- Declaration:

 * Node: &{a [] 0 0}
 * Node: &{b [] 0 0}
 * Node: &{c [] 0 0}
 * Node: &{x [] 0 0}
 * Node: &{ll [] 0 0}
 * Node: &{zz [] 0 0}

- Found a block

 * Statement:   imprimir("hola")
 * Statement:   imprimir("mundo")

- Scope: &{[0xc8200142c0 0xc820014340 0xc8200143c0 0xc820014480 0xc820014500 0xc820014580] [0xc820010440]}


Ast.File:
&{ejemplos/holamundo.sl hola 0xc820032028 0xc820012300 [{
  Comentario
  De prueba
  15 47}]}

Running...

Declaring: &{a [] 0 0}
Declaring: &{b [] 0 0}
Declaring: &{c [] 0 0}
Declaring: &{x [] 0 0}
Declaring: &{ll [] 0 0}
Declaring: &{zz [] 0 0}

Main...

vars map[]
Evaluate: &{imprimir [0xc8200125d0] 0 0}

Call: imprimir (function)

hola
Evaluate: &{imprimir [0xc820012600] 0 0}

Call: imprimir (function)

mundo
%

Licencia

MIT

About

Intérprete experimental de SL, basado en Go.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published