From b5c543f7639a8a545ae7c627e594ce4fcdbd6435 Mon Sep 17 00:00:00 2001
From: Jed Barber Mini Ada is a minimalistic, standalone, portable, libre and open source REPL,
-interpreter, JIT, and compiler for the Ada programming language.Overview
This spec is not complete. Nor does it discuss algorithms and data structures used. For those, see the technical spec.
@@ -29,8 +30,9 @@ written so far. Then he uses the Mini Ada Compiler to compile his assignments.James is an Ada developer who wants to write some software for an architecture that doesn't have an Ada compiler targeting it yet. He downloads and uses the Mini Ada -Interpreter as a stopgap measure, making use of it being written in Forth, which -is an extremely simple language that has been ported everywhere.
+Interpreter as a stopgap measure, making use of it being written in a language that +has already been ported to every architecture under the sun. He does not have to wait +for a compiler backend to be written.David is a sysadmin. He wants a scripting language that minimises errors. He uses the Mini Ada JIT to take advantage of just-in-time compilation speedups and the @@ -55,7 +57,7 @@ it as easy to deploy as any shell interpreter.
What linking is required for FFI and interfacing with already-compiled units?
@@ -65,7 +67,7 @@ it as easy to deploy as any shell interpreter.Command line options recognised by all four utilities:
+Command line options recognised by all four programs:
Short | @@ -91,14 +93,6 @@ it as easy to deploy as any shell interpreter.N/A | Displays the relevant help message then terminates. Any additional options will be ignored. | |||
---|---|---|---|---|---|
-x | -- | none | -N/A | -N/A | -Ignores the first line of file input. Doesn't take effect if input is from standard input. | -
-I | @@ -115,6 +109,24 @@ it as easy to deploy as any shell interpreter. | any valid path | Specify library files search path. | ||
-A | +--annex | +required | +string | +Any combination of the characters "abcdefghj". | +Sets the language annexes that will be available during program execution. The default value is "abcdefghj" + which allows all supported annexes to be used. Informative annexes are not affected by this option. | +
-w | +--warning | +required | +character/string | +One of the characters "ens" or one of the strings "error", "normal", "suppress". | +Sets the way warnings are to be treated by the program. Either as an error, as normal, or completely + suppressed. | +
- | -- | @@ -150,6 +162,14 @@ mareplValues | Description | ||
-x | ++ | none | +N/A | +N/A | +Ignores the first line of file input. Doesn't take effect if input is from standard input. | +
-i | --interactive | @@ -162,7 +182,7 @@ mareplValues | Description | ||
-x | ++ | none | +N/A | +N/A | +Ignores the first line of file input. Doesn't take effect if input is from standard input. | +
The first non-option command line item specifies a file to interpret and terminates the option list. @@ -255,6 +287,20 @@ Mini Ada Interpreter [version number]
The help message is:
+Usage: mai [options] [arguments] + +The first argument specifies a file to interpret and terminates the option list. All additional +arguments are passed to the interpreted file as command line arguments. + +Options: + --version displays the REPL version number +-h --help displays this help message +-Idir specifies source files search path +-Ldir specifies library files search path +-Aarg --annex=arg specify which language annexes will be allowed +-warg --warning=arg how warnings are to be treated +- -- terminates option list +-x ignores the first line of file input
This program expects as file input a valid compilation_unit (RM 10.1.1). The input is interpreted and @@ -284,5 +330,24 @@ Interpreter, with the word "JIT" substituted for "Interpreter".
mac + + + +Should any of these programs encounter an error, an error message will be displayed to the standard +error stream. This error message will consist of the following format:
++Error at line [number], character [number] ++ +
Should any of these programs encounter a warning, a warning message will be displayed to the standard +error stream. This warning message will consiste of the following format:
++Warning at line [number], character [number] ++ +
What sorts of error/warning messages are required by the Ada specification?
+