match specifier {
"std:mem" => Ok(include_str!("../../stdlib/mem.sorel")),
"std:out" => Ok(include_str!("../../stdlib/out.sorel")),
+ "std:string" => Ok(include_str!("../../stdlib/string.sorel")),
_ => bail!("{} is not a standard library module", specifier),
}
}
sys3
;
-: strlen ( addr -- len )
- dup dup \ ( addr addr addr )
- @:8 \ ( addr addr byte )
- loop \ ( addr addr )
- 1 + \ ( addr addr+1 )
- dup \ ( addr addr+1 addr+1)
- @:8 \ ( addr addr+1 byte )
- endloop \ ( addr addr+len )
- swap \ ( addr+len addr )
- - \ ( len )
-;
+import "std:string"
export puts
--- /dev/null
+\ vim: filetype=forth
+
+: strlen ( addr -- len )
+ dup dup \ ( addr addr addr )
+ @:8 \ ( addr addr byte )
+ loop \ ( addr addr )
+ 1 + \ ( addr addr+1 )
+ dup \ ( addr addr+1 addr+1)
+ @:8 \ ( addr addr+1 byte )
+ endloop \ ( addr addr+len )
+ swap \ ( addr+len addr )
+ - \ ( len )
+;
+
+export strlen