mirror of
https://github.com/ProvableHQ/leo.git
synced 2024-12-23 18:21:38 +03:00
Adds initial wasm template
This commit is contained in:
parent
1b99c42470
commit
b751e870e5
@ -1,5 +1,2 @@
|
||||
[build]
|
||||
[target.'cfg(not(target_arch = "wasm32"))']
|
||||
rustflags = ["-C", "target-cpu=native"]
|
||||
|
||||
[net]
|
||||
git-fetch-with-cli = true
|
||||
|
79
Cargo.lock
generated
79
Cargo.lock
generated
@ -50,9 +50,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.37"
|
||||
version = "1.0.38"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ee67c11feeac938fae061b232e38e0b6d94f97a9df10e6271319325ac4c56a86"
|
||||
checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1"
|
||||
|
||||
[[package]]
|
||||
name = "arrayref"
|
||||
@ -385,6 +385,16 @@ dependencies = [
|
||||
"winapi 0.3.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "console_error_panic_hook"
|
||||
version = "0.1.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211"
|
||||
dependencies = [
|
||||
"cfg-if 0.1.10",
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "const_fn"
|
||||
version = "0.4.4"
|
||||
@ -1188,9 +1198,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "js-sys"
|
||||
version = "0.3.46"
|
||||
version = "0.3.47"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175"
|
||||
checksum = "5cfb73131c35423a367daf8cbd24100af0d077668c8c2943f0e7dd775fef0f65"
|
||||
dependencies = [
|
||||
"wasm-bindgen",
|
||||
]
|
||||
@ -1422,6 +1432,19 @@ dependencies = [
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "leo-wasm"
|
||||
version = "1.2.0"
|
||||
dependencies = [
|
||||
"js-sys",
|
||||
"leo-asg",
|
||||
"leo-ast",
|
||||
"leo-grammar",
|
||||
"serde",
|
||||
"wasm-bindgen",
|
||||
"wasm-bindgen-test",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.81"
|
||||
@ -3158,9 +3181,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen"
|
||||
version = "0.2.69"
|
||||
version = "0.2.70"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e"
|
||||
checksum = "55c0f7123de74f0dab9b7d00fd614e7b19349cd1e2f5252bbe9b1754b59433be"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"serde",
|
||||
@ -3170,9 +3193,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-backend"
|
||||
version = "0.2.69"
|
||||
version = "0.2.70"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62"
|
||||
checksum = "7bc45447f0d4573f3d65720f636bbcc3dd6ce920ed704670118650bcd47764c7"
|
||||
dependencies = [
|
||||
"bumpalo",
|
||||
"lazy_static",
|
||||
@ -3185,9 +3208,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-futures"
|
||||
version = "0.4.19"
|
||||
version = "0.4.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35"
|
||||
checksum = "3de431a2910c86679c34283a33f66f4e4abd7e0aec27b6669060148872aadf94"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"js-sys",
|
||||
@ -3197,9 +3220,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-macro"
|
||||
version = "0.2.69"
|
||||
version = "0.2.70"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084"
|
||||
checksum = "3b8853882eef39593ad4174dd26fc9865a64e84026d223f63bb2c42affcbba2c"
|
||||
dependencies = [
|
||||
"quote 1.0.7",
|
||||
"wasm-bindgen-macro-support",
|
||||
@ -3207,9 +3230,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-macro-support"
|
||||
version = "0.2.69"
|
||||
version = "0.2.70"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549"
|
||||
checksum = "4133b5e7f2a531fa413b3a1695e925038a05a71cf67e87dafa295cb645a01385"
|
||||
dependencies = [
|
||||
"proc-macro2 1.0.24",
|
||||
"quote 1.0.7",
|
||||
@ -3220,9 +3243,33 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-shared"
|
||||
version = "0.2.69"
|
||||
version = "0.2.70"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158"
|
||||
checksum = "dd4945e4943ae02d15c13962b38a5b1e81eadd4b71214eee75af64a4d6a4fd64"
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-test"
|
||||
version = "0.3.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f0d4da138503a4cf86801b94d95781ee3619faa8feca830569cc6b54997b8b5c"
|
||||
dependencies = [
|
||||
"console_error_panic_hook",
|
||||
"js-sys",
|
||||
"scoped-tls",
|
||||
"wasm-bindgen",
|
||||
"wasm-bindgen-futures",
|
||||
"wasm-bindgen-test-macro",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-test-macro"
|
||||
version = "0.3.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c3199c33f06500c731d5544664c24d0c2b742b98debc6b1c6f0c6d6e8fb7c19b"
|
||||
dependencies = [
|
||||
"proc-macro2 1.0.24",
|
||||
"quote 1.0.7",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "web-sys"
|
||||
|
@ -26,6 +26,7 @@ path = "leo/main.rs"
|
||||
|
||||
[workspace]
|
||||
members = [
|
||||
"asg",
|
||||
"ast",
|
||||
"compiler",
|
||||
"gadgets",
|
||||
@ -35,7 +36,7 @@ members = [
|
||||
"linter",
|
||||
"package",
|
||||
"state",
|
||||
"asg"
|
||||
"wasm"
|
||||
]
|
||||
|
||||
[dependencies.leo-ast]
|
||||
|
@ -1,85 +1,77 @@
|
||||
{
|
||||
"definitions": [
|
||||
{
|
||||
"Function": {
|
||||
"identifier": {
|
||||
"value": "main",
|
||||
"span": {
|
||||
"input": "main",
|
||||
"start": 9,
|
||||
"end": 13
|
||||
}
|
||||
},
|
||||
"parameters": [],
|
||||
"returns": null,
|
||||
"block": {
|
||||
"statements": [
|
||||
{
|
||||
"Return": {
|
||||
"expression": {
|
||||
"Binary": {
|
||||
"operation": "Add",
|
||||
"left": {
|
||||
"Value": {
|
||||
"Implicit": {
|
||||
"Positive": {
|
||||
"value": "1",
|
||||
"span": {
|
||||
"input": "1",
|
||||
"start": 29,
|
||||
"end": 30
|
||||
}
|
||||
}
|
||||
"name": "basic",
|
||||
"expected_input": [],
|
||||
"imports": [],
|
||||
"circuits": {},
|
||||
"functions": {
|
||||
"{\"name\":\"main\",\"span\":\"{\\\"text\\\":\\\" function main() {\\\",\\\"line\\\":1,\\\"start\\\":10,\\\"end\\\":14}\"}": {
|
||||
"identifier": "{\"name\":\"main\",\"span\":\"{\\\"text\\\":\\\" function main() {\\\",\\\"line\\\":1,\\\"start\\\":10,\\\"end\\\":14}\"}",
|
||||
"input": [],
|
||||
"output": null,
|
||||
"block": {
|
||||
"statements": [
|
||||
{
|
||||
"Return": {
|
||||
"expression": {
|
||||
"Binary": {
|
||||
"left": {
|
||||
"Value": {
|
||||
"Implicit": [
|
||||
"1",
|
||||
{
|
||||
"text": " return 1 + 1",
|
||||
"line": 2,
|
||||
"start": 12,
|
||||
"end": 13
|
||||
}
|
||||
}
|
||||
},
|
||||
"right": {
|
||||
"Value": {
|
||||
"Implicit": {
|
||||
"Positive": {
|
||||
"value": "1",
|
||||
"span": {
|
||||
"input": "1",
|
||||
"start": 33,
|
||||
"end": 34
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"span": {
|
||||
"input": "1 + 1",
|
||||
"start": 29,
|
||||
"end": 34
|
||||
]
|
||||
}
|
||||
},
|
||||
"op": "Add",
|
||||
"right": {
|
||||
"Value": {
|
||||
"Implicit": [
|
||||
"1",
|
||||
{
|
||||
"text": " return 1 + 1",
|
||||
"line": 2,
|
||||
"start": 16,
|
||||
"end": 17
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"span": {
|
||||
"text": " return 1 + 1",
|
||||
"line": 2,
|
||||
"start": 12,
|
||||
"end": 17
|
||||
}
|
||||
},
|
||||
"span": {
|
||||
"input": "return 1 + 1",
|
||||
"start": 22,
|
||||
"end": 34
|
||||
}
|
||||
},
|
||||
"span" : {
|
||||
"text": " return 1 + 1",
|
||||
"line": 2,
|
||||
"start": 5,
|
||||
"end": 17
|
||||
}
|
||||
}
|
||||
],
|
||||
"span": {
|
||||
"input": "{\n return 1 + 1\n}",
|
||||
"start": 16,
|
||||
"end": 36
|
||||
}
|
||||
},
|
||||
"span": {
|
||||
"input": "function main() {\n return 1 + 1\n}",
|
||||
"start": 0,
|
||||
"end": 36
|
||||
],
|
||||
"span" : {
|
||||
"text": " return 1 + 1",
|
||||
"line": 2,
|
||||
"start": 5,
|
||||
"end": 17
|
||||
}
|
||||
},
|
||||
"span": {
|
||||
"text": " function main() {",
|
||||
"line": 1,
|
||||
"start": 1,
|
||||
"end": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"eoi": null,
|
||||
"span": {
|
||||
"input": "function main() {\n return 1 + 1\n}\n",
|
||||
"start": 0,
|
||||
"end": 37
|
||||
}
|
||||
},
|
||||
"tests": {}
|
||||
}
|
@ -1,4 +1,3 @@
|
||||
// The dummy 'pedersen-hash' main function.
|
||||
function main() -> u32 {
|
||||
function main() {
|
||||
return 1 + 1
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ circuit PedersenHash {
|
||||
}
|
||||
}
|
||||
|
||||
// The dummy 'pedersen-hash' main function.
|
||||
// The 'dummy-pedersen-hash' main function.
|
||||
function main() -> group {
|
||||
const parameters = [1group; 256];
|
||||
const pedersen = PedersenHash::new(parameters);
|
||||
|
33
wasm/Cargo.toml
Normal file
33
wasm/Cargo.toml
Normal file
@ -0,0 +1,33 @@
|
||||
[package]
|
||||
name = "leo-wasm"
|
||||
version = "1.2.0"
|
||||
authors = [ "The Aleo Team <hello@aleo.org>" ]
|
||||
description = "WASM interpreter of the Leo programming language"
|
||||
homepage = "https://aleo.org"
|
||||
repository = "https://github.com/AleoHQ/leo"
|
||||
keywords = [
|
||||
"aleo",
|
||||
"cryptography",
|
||||
"leo",
|
||||
"programming-language",
|
||||
"zero-knowledge"
|
||||
]
|
||||
categories = [ "cryptography::cryptocurrencies", "web-programming" ]
|
||||
include = [ "Cargo.toml", "src", "README.md", "LICENSE.md" ]
|
||||
license = "GPL-3.0"
|
||||
edition = "2018"
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib", "rlib"]
|
||||
|
||||
[dependencies]
|
||||
leo-asg = { path = "../asg", version = "1.2.0" }
|
||||
leo-ast = { path = "../ast", version = "1.2.0" }
|
||||
leo-grammar = { path = "../grammar", version = "1.2.0" }
|
||||
|
||||
js-sys = "0.3.47"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
wasm-bindgen = { version = "0.2", features = ["serde-serialize"] }
|
||||
|
||||
[dev-dependencies]
|
||||
wasm-bindgen-test = { version = "0.3.20" }
|
123
wasm/src/asg.rs
123
wasm/src/asg.rs
@ -1,62 +1,61 @@
|
||||
// Copyright (C) 2019-2021 Aleo Systems Inc.
|
||||
// This file is part of the Leo library.
|
||||
|
||||
// The Leo library is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// The Leo library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
use leo_ast::Ast as LeoAst;
|
||||
use leo_grammar::Grammar as LeoGrammar;
|
||||
|
||||
use std::path::Path;
|
||||
use wasm_bindgen::prelude::*;
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub struct Ast(String);
|
||||
|
||||
#[wasm_bindgen]
|
||||
impl Ast {
|
||||
#[wasm_bindgen(constructor)]
|
||||
pub fn new(filepath: &str, program_name: &str, program_string: &str) -> Self {
|
||||
let grammar = LeoGrammar::new(&Path::new(filepath), &program_string).unwrap();
|
||||
let ast = LeoAst::new(program_name, &grammar).unwrap();
|
||||
Self(ast.to_json_string().unwrap())
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn to_string(&self) -> String {
|
||||
self.0.clone()
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
use wasm_bindgen_test::*;
|
||||
|
||||
#[wasm_bindgen_test]
|
||||
fn ast_test() {
|
||||
let expected = include_str!("../.resources/basic/expected_ast.json");
|
||||
|
||||
let filepath = "../.resources/basic/main.leo";
|
||||
let program_name = "basic";
|
||||
let program_string = include_str!("../.resources/basic/main.leo");
|
||||
|
||||
let candidate = Ast::new(filepath, program_name, program_string).to_string();
|
||||
|
||||
let expected = JsValue::from_str(expected);
|
||||
let candidate = JsValue::from_serde(&candidate).unwrap();
|
||||
|
||||
assert_eq!(expected, candidate);
|
||||
}
|
||||
}
|
||||
// // Copyright (C) 2019-2021 Aleo Systems Inc.
|
||||
// // This file is part of the Leo library.
|
||||
//
|
||||
// // The Leo library is free software: you can redistribute it and/or modify
|
||||
// // it under the terms of the GNU General Public License as published by
|
||||
// // the Free Software Foundation, either version 3 of the License, or
|
||||
// // (at your option) any later version.
|
||||
//
|
||||
// // The Leo library is distributed in the hope that it will be useful,
|
||||
// // but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// // GNU General Public License for more details.
|
||||
//
|
||||
// // You should have received a copy of the GNU General Public License
|
||||
// // along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
|
||||
//
|
||||
// use leo_asg::Asg as LeoAsg;
|
||||
// use leo_grammar::Grammar as LeoGrammar;
|
||||
//
|
||||
// use std::path::Path;
|
||||
// use wasm_bindgen::prelude::*;
|
||||
//
|
||||
// #[wasm_bindgen]
|
||||
// pub struct Ast(String);
|
||||
//
|
||||
// #[wasm_bindgen]
|
||||
// impl Ast {
|
||||
// #[wasm_bindgen(constructor)]
|
||||
// pub fn new(filepath: &str, program_name: &str, program_string: &str) -> Self {
|
||||
// let asg = LeoAsg::new(&self.program, &mut leo_imports::ImportParser::default())?;
|
||||
// Self(ast.to_json_string().unwrap())
|
||||
// }
|
||||
//
|
||||
// #[wasm_bindgen]
|
||||
// pub fn to_string(&self) -> String {
|
||||
// self.0.clone()
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// #[cfg(test)]
|
||||
// mod tests {
|
||||
// use super::*;
|
||||
//
|
||||
// use wasm_bindgen_test::*;
|
||||
//
|
||||
// #[wasm_bindgen_test]
|
||||
// fn ast_test() {
|
||||
// let expected = include_str!("../.resources/basic/expected_ast.json");
|
||||
//
|
||||
// let filepath = "../.resources/basic/main.leo";
|
||||
// let program_name = "basic";
|
||||
// let program_string = include_str!("../.resources/basic/main.leo");
|
||||
//
|
||||
// let candidate = Ast::new(filepath, program_name, program_string).to_string();
|
||||
//
|
||||
// let expected = JsValue::from_str(expected);
|
||||
// let candidate = JsValue::from_serde(&candidate).unwrap();
|
||||
//
|
||||
// assert_eq!(expected, candidate);
|
||||
// }
|
||||
// }
|
||||
|
@ -0,0 +1,62 @@
|
||||
// Copyright (C) 2019-2021 Aleo Systems Inc.
|
||||
// This file is part of the Leo library.
|
||||
|
||||
// The Leo library is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// The Leo library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
use leo_ast::Ast as LeoAst;
|
||||
use leo_grammar::Grammar as LeoGrammar;
|
||||
|
||||
use std::path::Path;
|
||||
use wasm_bindgen::prelude::*;
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub struct Ast(LeoAst);
|
||||
|
||||
#[wasm_bindgen]
|
||||
impl Ast {
|
||||
#[wasm_bindgen(constructor)]
|
||||
pub fn new(filepath: &str, program_name: &str, program_string: &str) -> Self {
|
||||
let grammar = LeoGrammar::new(&Path::new(filepath), &program_string).unwrap();
|
||||
let ast = LeoAst::new(program_name, &grammar).unwrap();
|
||||
Self(ast)
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn to_string(&self) -> String {
|
||||
self.0.to_json_string().unwrap()
|
||||
}
|
||||
}
|
||||
|
||||
// #[cfg(test)]
|
||||
// mod tests {
|
||||
// use super::*;
|
||||
//
|
||||
// use wasm_bindgen_test::*;
|
||||
//
|
||||
// #[wasm_bindgen_test]
|
||||
// fn ast_test() {
|
||||
// let expected = include_str!("../.resources/basic/expected_ast.json");
|
||||
//
|
||||
// let filepath = "../.resources/basic/main.leo";
|
||||
// let program_name = "basic";
|
||||
// let program_string = include_str!("../.resources/basic/main.leo");
|
||||
//
|
||||
// let candidate = Ast::new(filepath, program_name, program_string).to_string();
|
||||
//
|
||||
// let expected = JsValue::from_str(expected);
|
||||
// let candidate = JsValue::from_serde(&candidate).unwrap();
|
||||
//
|
||||
// assert_eq!(expected, candidate);
|
||||
// }
|
||||
// }
|
@ -0,0 +1,47 @@
|
||||
// // Copyright (C) 2019-2021 Aleo Systems Inc.
|
||||
// // This file is part of the Leo library.
|
||||
//
|
||||
// // The Leo library is free software: you can redistribute it and/or modify
|
||||
// // it under the terms of the GNU General Public License as published by
|
||||
// // the Free Software Foundation, either version 3 of the License, or
|
||||
// // (at your option) any later version.
|
||||
//
|
||||
// // The Leo library is distributed in the hope that it will be useful,
|
||||
// // but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// // GNU General Public License for more details.
|
||||
//
|
||||
// // You should have received a copy of the GNU General Public License
|
||||
// // along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
|
||||
//
|
||||
// use crate::ast::Ast;
|
||||
//
|
||||
// use std::path::Path;
|
||||
// use wasm_bindgen::prelude::*;
|
||||
//
|
||||
// #[wasm_bindgen]
|
||||
// pub struct Compiler(String);
|
||||
//
|
||||
// #[wasm_bindgen]
|
||||
// impl Compiler {
|
||||
// #[wasm_bindgen(constructor)]
|
||||
// pub fn new(filepath: &str, program_name: &str, program_string: &str) -> Self {
|
||||
// let ast = Ast::new(filepath, program_name, program_string).unwrap();
|
||||
// Self(ast.to_string())
|
||||
// }
|
||||
//
|
||||
// #[wasm_bindgen]
|
||||
// pub fn to_string(&self) -> String {
|
||||
// self.0.clone()
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// #[cfg(test)]
|
||||
// mod tests {
|
||||
// use super::*;
|
||||
//
|
||||
// use wasm_bindgen_test::*;
|
||||
//
|
||||
// #[wasm_bindgen_test]
|
||||
// fn ast_test() {}
|
||||
// }
|
21
wasm/src/lib.rs
Normal file
21
wasm/src/lib.rs
Normal file
@ -0,0 +1,21 @@
|
||||
// Copyright (C) 2019-2021 Aleo Systems Inc.
|
||||
// This file is part of the Leo library.
|
||||
|
||||
// The Leo library is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// The Leo library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
pub mod ast;
|
||||
pub use ast::*;
|
||||
|
||||
// pub mod compiler;
|
||||
// pub use compiler::*;
|
Loading…
Reference in New Issue
Block a user