Files
@ b194b811d0cc
Branch filter:
Location: CSY/reowolf/src/protocol/library.rs - annotation
b194b811d0cc
3.3 KiB
application/rls-services+xml
WIP on rewriting parts of parser
06f259bf8031 06f259bf8031 06f259bf8031 d23010006486 d23010006486 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 06f259bf8031 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 33ea10021de4 | use crate::protocol::ast::*;
use crate::protocol::inputsource::*;
// TABBED OUT FOR NOW
pub fn get_declarations(h: &mut Heap, i: ImportId) -> Result<Vec<DeclarationId>, ParseError2> {
todo!("implement me");
// if h[i].value == b"std.reo" {
// let mut vec = Vec::new();
// vec.push(cd(h, i, b"sync", &[Type::INPUT, Type::OUTPUT]));
// vec.push(cd(h, i, b"syncdrain", &[Type::INPUT, Type::INPUT]));
// vec.push(cd(h, i, b"syncspout", &[Type::OUTPUT, Type::OUTPUT]));
// vec.push(cd(h, i, b"asyncdrain", &[Type::INPUT, Type::INPUT]));
// vec.push(cd(h, i, b"asyncspout", &[Type::OUTPUT, Type::OUTPUT]));
// vec.push(cd(h, i, b"merger", &[Type::INPUT_ARRAY, Type::OUTPUT]));
// vec.push(cd(h, i, b"router", &[Type::INPUT, Type::OUTPUT_ARRAY]));
// vec.push(cd(h, i, b"consensus", &[Type::INPUT_ARRAY, Type::OUTPUT]));
// vec.push(cd(h, i, b"replicator", &[Type::INPUT, Type::OUTPUT_ARRAY]));
// vec.push(cd(h, i, b"alternator", &[Type::INPUT_ARRAY, Type::OUTPUT]));
// vec.push(cd(h, i, b"roundrobin", &[Type::INPUT, Type::OUTPUT_ARRAY]));
// vec.push(cd(h, i, b"node", &[Type::INPUT_ARRAY, Type::OUTPUT_ARRAY]));
// vec.push(cd(h, i, b"fifo", &[Type::INPUT, Type::OUTPUT]));
// vec.push(cd(h, i, b"xfifo", &[Type::INPUT, Type::OUTPUT, Type::MESSAGE]));
// vec.push(cd(h, i, b"nfifo", &[Type::INPUT, Type::OUTPUT, Type::INT]));
// vec.push(cd(h, i, b"ufifo", &[Type::INPUT, Type::OUTPUT]));
// Ok(vec)
// } else if h[i].value == b"std.buf" {
// let mut vec = Vec::new();
// vec.push(fd(h, i, b"writeByte", Type::BYTE, &[Type::MESSAGE, Type::INT, Type::BYTE]));
// vec.push(fd(h, i, b"writeShort", Type::SHORT, &[Type::MESSAGE, Type::INT, Type::SHORT]));
// vec.push(fd(h, i, b"writeInt", Type::INT, &[Type::MESSAGE, Type::INT, Type::INT]));
// vec.push(fd(h, i, b"writeLong", Type::LONG, &[Type::MESSAGE, Type::INT, Type::LONG]));
// vec.push(fd(h, i, b"readByte", Type::BYTE, &[Type::MESSAGE, Type::INT]));
// vec.push(fd(h, i, b"readShort", Type::SHORT, &[Type::MESSAGE, Type::INT]));
// vec.push(fd(h, i, b"readInt", Type::INT, &[Type::MESSAGE, Type::INT]));
// vec.push(fd(h, i, b"readLong", Type::LONG, &[Type::MESSAGE, Type::INT]));
// Ok(vec)
// } else {
// Err(ParseError::new(h[i].position, "Unknown import"))
// }
}
//
// fn cd(h: &mut Heap, import: ImportId, ident: &[u8], sig: &[Type]) -> DeclarationId {
// let identifier = h.get_external_identifier(ident).upcast();
// h.alloc_imported_declaration(|this| ImportedDeclaration {
// this,
// import,
// signature: Signature::Component(ComponentSignature { identifier, arity: sig.to_vec() }),
// })
// .upcast()
// }
//
// fn fd(h: &mut Heap, import: ImportId, ident: &[u8], ret: Type, sig: &[Type]) -> DeclarationId {
// let identifier = h.get_external_identifier(ident).upcast();
// h.alloc_imported_declaration(|this| ImportedDeclaration {
// this,
// import,
// signature: Signature::Function(FunctionSignature {
// return_type: ret,
// identifier,
// arity: sig.to_vec(),
// }),
// })
// .upcast()
// }
|