Lima++ trailer (aun no esta listo pero ya ha avanzado)

estoy creando un nuevo lenguaje de programacion sobre lima, se llamara Lima++, lo que no pude hacer en lima por la compatibilidad con el interprete lima hecho en scratch.mit.edu lo hare en Lima++ , aqui hay un avance de un programa hola mundo en Lima++

# example1.lima

///! ![enable Lima++]
import
    string
;

///! ![enable Lima++]
import
    iostream
;

///! ![enable Lima++]
jump
Main

section
Main
    collection<new class?string phrase>
    =
    "hello world"

    NULL collection<instance;class?basic_iostream;conout;print>(->)<phrase>

popback

por cierto, yo mismo cree la libreria iostream y string
aqui esta el contenido de iostream.lima

# iostream.lima

///! ![enable Lima++]
collection<class basic_iostream>
{
    # __value
    # 
    # Summary:
    # 	the value that is called when you try to call the class
    # 
    collection<children var __value>

    # print
    # 
    # Summary:
    # 	prints a text
    # 
    # Params:
    # 	...
    # 
    collection<function print>
    (
        collection<param text>
    )
        echo collection<param text>

        collection<return "">

    collection<end function>

    # read
    # 
    # Summary:
    # 	read a line
    # 
    # Params:
    # 	...
    # 
    collection<function read>
    (
    )
        collection<return ReadLine>
    collection<end function>

    # readkey
    # 
    # Summary:
    # 	read a key
    # 
    # Params:
    # 	...
    # 
    collection<function readkey>
    (
    )
        collection<return ReadKeyWait>
    collection<end function>
}

collection<new class?basic_iostream conin>
=
<function Transis<"in"><class>>

collection<new class?basic_iostream conout>
=
<function Transis<"out"><class>>

y el de string.lima

# string.lima
#
# abstract:
#   string clases

///! ![enable Lima++]
///! ![Lima++ no_main]
///! ![Lima++ no_std]
///! ![Lima++ std_lib_definition]
///! ![Lima++ jump affter execution]

# string
# 
# Summary:
# 	a text with things
# 
# Params:
# 	the string
#  
# Examples:
# collection<new class?string MyText>
# =
# "hello world"
# 
collection<class string>
{
    # __value
    # 
    # Summary:
    # 	the value that is called when you try to call the class
    # 
    collection<children var __value>

    # lenght
    # 
    # Summary:
    # 	the lenght of the text
    # 
    collection<children var lenght>

    # Substring
    # 
    # Summary:
    # 	exctracts a text part
    # 
    # Params:
    # 	@letter
    #   @lenght
    # 
    collection<function Substring> 
    (
        collection<param letter> 
        collection<param lenght>
    )
        #
        # setuping variables
        #

        var
            text
            =
            collection<get __value>
        
        var
            letter
            =
            collection<get param letter>

        var
            lenght
            =
            collection<get param lenght>

        #
        # routine
        #

        var
            _returned
            =
            text.Substring(letter,lenght)

        collection<return _returned>

    collection<end function>

    # Join
    # 
    # Summary:
    # 	joins the text
    # 
    # Params:
    # 	@letter
    #   @lenght
    #
    collection<function Join> 
    (
        collection<param text2>
    )

        #
        # setuping variables
        #

        var
            text
            =
            collection<get __value>

        var
            text2
            =
            collection<param text2>

        #
        # routine
        #

        var
            _returned
            =
            text

        var
            _returned
            +=
            text2

        collection<return _returned>

        collection<set __value> _returned

    collection<end function>
}

no he hecho ni un 10% de lo que quiero hacer con Lima++, se vendran nuevas librerias, nuevas funciones y nuevas maneras creativas, con las collection<class ..> en lima++, los @structure ya se quedan cortos en funciones

3 Me gusta

Cuando salga definitivamente lo probare

1 me gusta

es solo una extension de lima que es un modo que se puede activar , asi que como sigue siendo el interprete lima pues como lima esta programado en C# pues… linux x C# ?= … nada

1 me gusta

:O?, ese era el “Lima avanzado” que estabas diciendo en el grupo?, btw espero que logres meterle soporte para GNU/Linux

1 me gusta