pseudocode

Crates.iopseudocode
lib.rspseudocode
version0.1.8
sourcesrc
created_at2020-03-30 05:46:26.329291
updated_at2021-03-19 22:56:14.799414
descriptionAP CSP Pseudocode interpreter (rough cut)
homepage
repository
max_upload_size
id224292
size57,768
Gabe Fierro (gtfierro)

documentation

README

AP Pseudocode Interpreter

Includes:

  • Rust library
  • Command line interface
  • Web interface

Building

Web Interface

Need installed: cargo, rust, npm

  1. Install wasm-pack
  2. Install cargo-generate:
    cargo install cargo-generate
    
  3. Initialize javascript setup from inside web/www
    cd web/www
    # if doing for first time
    #npm init wasm-app www
    
    cd www
    npm install
    
  4. Run with
    npm run start
    

Serving Statically

It is possible to build this so that you can serve all the file statically. First, run npm run build to put the files in web/www/dist, then serve the dist directory. Make sure that your webserver (e.g. nginx) is attaching the application/wasm MIME type for the .wasm resources. You can enforce this in nginx by adding the following line to /etc/nginx/mime.types:

    application/wasm    wasm

TODO

  • list:
    • need to implement lists as a reference type
    • rather than embedding the backing Vec inside the Value enum, embed a reference to the Vec that is stored in a Scope environment
    • this would require expanding the Scope nevironment to hold references, likely in a separate dictionary?
  • negative numbers
  • negation
  • NOT
  • native functions: implement in Rust
    • CONCAT
    • SUBSTRING
    • RANDOM
    • [ ] DISPLAY (?)
  • robot stuff
  • stepped execution
Commit count: 0

cargo fmt