mirror of
https://github.com/azur1s/bobbylisp.git
synced 2024-10-16 02:37:40 -05:00
Compare commits
2 commits
e19e468545
...
ad57b2f63a
Author | SHA1 | Date | |
---|---|---|---|
Natapat Samutpong | ad57b2f63a | ||
Natapat Samutpong | 222cd44bb3 |
61
build.sh
Executable file
61
build.sh
Executable file
|
@ -0,0 +1,61 @@
|
|||
#!/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
|
|
@ -3,7 +3,7 @@ use clap::{ Parser, Subcommand };
|
|||
|
||||
const VERSION: &str = env!("CARGO_PKG_VERSION");
|
||||
|
||||
/// Hades compiler.
|
||||
/// Hazure 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>,
|
||||
},
|
||||
|
|
|
@ -5,9 +5,10 @@ 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;
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue