Tu primer programa

Crea un proyecto de Antril a partir de una plantilla, ejecútalo, compílalo y modifícalo.

Última actualización: 4 min de lectura Editar en GitHub

En esta página

Un proyecto de Larva es una carpeta con un archivo de proyecto .queen y sus archivos fuente. larva new crea uno a partir de una plantilla.

Crear un proyecto

larva new sin argumentos muestra las plantillas y los lenguajes disponibles:

Terminal
larva new
Templates (larva new <template> [Name] [--lang <language>]):
  Console-App  A program for the console: its Main prints a greeting
  Library      A library other projects use: a class with a method

Languages (--lang):
  antril      Antril 0.8.0 (.ant)

Crea un programa de consola llamado Hello:

Terminal
larva new Console-App Hello
C:\work\Hello: Console App in Antril (Program.ant, Hello.queen)
  larva build Hello\Hello.queen

El proyecto se crea en una carpeta nueva con su nombre; -o <folder> lo coloca en otro lugar. Si Antril es el único lenguaje instalado, larva lo usa directamente; si no, agrega --lang antril.

Qué contiene el proyecto

Hello/
  Hello.queen     the project file
  Program.ant     the program
  bin/            the build (made by larva build or larva run)

Program.ant contiene el punto de entrada, Main, dentro del espacio de nombres del proyecto:

Program.antAntrilRun
import System;

into namespace Hello
{
	/// The program's entry.
	Main()
	{
		Console.WriteLine("Hello from Larva!");
	}
}

Hello.queen describe qué es el proyecto y cómo se compila:

Hello.queen.queen
queen 1.0;

chunk PROJ:
   name: Hello,
   type: exe,
   version: v1.0

chunk BUILD:
   gc: default,
   backend: llvm,
   optimization: 3,
   borrowcheck: off,
   unsafe: allow

larva new escribe el chunk BUILD con los valores que usa tu máquina (consulta larva config en El comando larva). Cada chunk y cada clave se describen en Archivos de proyecto.

Ejecutarlo

Desde la carpeta del proyecto, larva run compila el programa si algo cambió y lo ejecuta:

Terminal
cd Hello
larva run
C:\work\Hello\bin\Hello.exe (llvm back end, O3, entry Hello::Hello.$Module.Main)
Hello from Larva!

La primera línea es el informe de compilación de larva; se escribe en el flujo de errores, así que la salida del propio programa queda separada. Si lo vuelves a ejecutar sin cambios, larva pasa directamente al programa.

larva run acepta las mismas opciones de compilación que larva build. Por ejemplo, larva run --backend x64 compila con el back end x86-64 propio de Larva, que compila más rápido que LLVM.

Compilarlo

larva build sin ningún archivo compila el proyecto en el que estás:

Terminal
larva build
C:\work\Hello\bin\Hello.exe (llvm back end, O3, entry Hello::Hello.$Module.Main)

El ejecutable se genera en bin/<name>.exe, a menos que el .queen indique otro lugar con output: en BUILD. Un proyecto con type: library genera bin/<name>.dll, una biblioteca de Larva que otros proyectos pueden usar.

Tip

Para revisar el código sin generar nada, usa larva build --check.

Modificar el programa

Abre Program.ant y reemplaza Main:

Program.antAntrilRun
import System;

into namespace Hello
{
	/// The program's entry.
	Main()
	{
		str[] names = ["Ana", "Luis", "Mia"];
		loop (str name in names)
			Console.WriteLine($"Hello, {name}!");
		Console.WriteLine($"{names.Length} greetings");
	}
}
Terminal
larva run
C:\work\Hello\bin\Hello.exe (llvm back end, O3, entry Hello::Hello.$Module.Main)
Hello, Ana!
Hello, Luis!
Hello, Mia!
3 greetings

Todo archivo .ant dentro de la carpeta del proyecto forma parte del proyecto, así que puedes agregar archivos junto a Program.ant sin declararlos en ningún lado.

Una biblioteca

La plantilla Library crea un proyecto que otros proyectos usan:

Terminal
larva new Library Shapes
C:\work\Shapes: Library in Antril (Greeter.ant, Shapes.queen)
  larva build Shapes\Shapes.queen

Otro proyecto la usa nombrándola en su chunk DEPS (proj: ../Shapes), o como paquete a través de Hive.

Siguiente paso: el recorrido por el lenguaje.

¿Te resultó útil esta página?

No se guarda ninguna dirección; tu nombre de usuario sí, si iniciaste sesión.

Esc