Files
@ ca97483c6ec7
Branch filter:
Location: CSY/reowolf/src/protocol/library.rs - annotation
ca97483c6ec7
3.3 KiB
application/rls-services+xml
rewritten parser to use symbol/type table
06f259bf8031 06f259bf8031 06f259bf8031 d23010006486 d23010006486 6717437470eb 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()
// }
|