1
1
Fork 0
mirror of https://github.com/azur1s/bobbylisp.git synced 2024-10-16 02:37:40 -05:00

Compare commits

..

No commits in common. "ad57b2f63ab791d4296a220bb29b5a7a44476370" and "e19e4685459b3d0fc4e3f5917967c744232985e2" have entirely different histories.

4 changed files with 9 additions and 71 deletions

View file

@ -1,61 +0,0 @@
#!/bin/sh
# Exit if subprocess return non-zero exit code
set -e
# Log function
log () {
echo -e "\033[0;32m[LOG]\033[0m $1"
}
err () {
echo -e "\033[0;31m[ERR]\033[0m $1"
}
# This will always be true unless there is
# missing executable that we need to use
install_pass=true
# Check if $1 is installed
check_installed () {
if ! command -v $1 -h &> /dev/null
then
err "$1 is not installed"
if [ install_pass ]; then
install_pass=false
fi
fi
}
check_installed cargo
check_installed git
check_installed deno # deno is required for running transpiled program
# If all of the above is installed
if [ ! install_pass ]; then
exit 1
fi
log "Dependencies is installed. Cloning..."
rm -rf ~/.cache/hazure/build/
git clone https://github.com/azur1s/hazure.git ~/.cache/hazure/build/
cd ~/.cache/hazure/build/
if [[ $1 == *"d"* ]]; then
log "Building in debug..."
cargo build
rm ~/bin/hazure -f
mv ~/.cache/hazure/build/target/debug/hazure ~/bin/hazure
else
log "Building..."
cargo build --release
rm ~/bin/hazure -f
mv ~/.cache/hazure/build/target/release/hazure ~/bin/hazure
fi
log "Build done. Cleaning up..."
rm -rf ~/.cache/hazure/build/
log "Done."
hazure -h

View file

@ -3,7 +3,7 @@ use clap::{ Parser, Subcommand };
const VERSION: &str = env!("CARGO_PKG_VERSION");
/// Hazure compiler
/// Hades compiler.
#[derive(Parser, Debug)]
#[clap(
version = VERSION,
@ -17,16 +17,16 @@ pub struct Args {
pub enum Options {
#[clap(about = "Compile an input file.")]
Compile {
/// The input file to compile
/// The input file to compile.
#[clap(parse(from_os_str))]
input: PathBuf,
/// Print parsed AST and exit (for debugging)
/// Print parsed AST and exit (for debugging).
#[clap(short, long)]
ast: bool,
/// Log process
/// Log process.
#[clap(short, long)]
log: bool,
/// Output file path
/// Output file path.
#[clap(short, long, parse(from_os_str))]
output: Option<PathBuf>,
},

View file

@ -5,10 +5,9 @@ end;
fun main: void = do
let result: int = add2(34, 35);
@write(result);
@write("\n");
if result == 69 then
@write("big cool");
@write("big cool")
else
@write("not cool");
@write("not cool")
end;
end;

View file

@ -5,7 +5,7 @@ fun iter_ (vec: vec_int) (current: int): void = do
do
-- iter logic
-- TODO: function as argument
@get(vec current) |> @write(_);
@get(vec, current) |> @write(_);
@write("\n");
iter_(vec, current + 1);