clover
clover copied to clipboard
clover script language.
+++ Clover Script Language +++
Features ->
Open classes(mixin class)
Dynamic and statically typing
Interructive mode with method name completion.
Git Repository Location ->
https://github.com/ab25cq/clover.git
Files -> README -> This file CHANGELOG -> Alteration records from version 0.9.8 AUTHOR -> Writer name and mail address USAGE -> Clover's Manual and Usage LICENSE -> GPL and MIT Licenses
code/*.cl code/*.clc -> Clover sources for the test
Fundamental.clc -> Fundamental Classes
StandardLibrary.clc.in -> Standard Library Classes
Completion.clc -> Castamized completion classes
config.h.in -> config.h source file which is used by configure
configure.in -> configure source file which is used by autoconf
Makefile.in -> Makefile source file which is used by configure
install.sh -> this is used by configure
configure -> configure program
tags -> C tags for program completion
man/man1/clover.1 -> a clover man page
src/alias.c --> alias system (print, println etc)
src/buffer.c --> inner resizable buffer library
src/c_to_clover.c --> C data to Clover data convertor for extension of Clover
src/compile.c --> Making byte codes from nodes. This is a way to make bytecodes of Clover --> (source codes -> nodes -> byte codes)
src/compiler.c --> cclover main program.
src/debug.c --> My original debug system for assert, detecting memory leak.
src/errmsg.c --> Clover errorr message output routines
src/heap.c --> Memory management systems. (A Gabage Collection)
src/interface.c --> An interface for embeded applications
src/interpreter.c --> External program to interpreter
src/klass.c --> A clover class system on runtime
src/klass_ctime.c --> A clover class system on compile time
src/load_class.c --> compile routine
src/main.c --> Clover main program
src/module.c --> module system
src/namespace.c --> namespace system
src/node.c --> Making byte codes from nodes. This is a way to make bytecodes of Clover. --> (source codes -> nodes -> byte codes)
src/node_tree.c --> Allocating nodes
src/node_type.c --> Compile time type system
src/obj_anonymous.c --> Runtime Object
src/obj_array.c
src/obj_block.c
src/obj_bool.c
src/obj_byte.c
src/obj_bytes.c
src/obj_char.c
src/obj_class_object.c
src/obj_clover.c
src/obj_double.c
src/obj_enum.c
src/obj_field.c
src/obj_file.c
src/obj_float.c
src/obj_hash.c
src/obj_int.c
src/obj_long.c
src/obj_method.c
src/obj_mutex.c
src/obj_null.c
src/obj_oniguruma_regex.c
src/obj_parser.c
src/obj_pointer.c
src/obj_range.c
src/obj_short.c
src/obj_string.c
src/obj_string_buffer.c
src/obj_system.c
src/obj_thread.c
src/obj_tm.c
src/obj_tuple.c
src/obj_type_object.c
src/obj_uint.c
src/obj_user_object.c
src/obj_void.c
src/obj_wait_status.c
src/parse.c --> making intermediate code(nodes) from source code.
src/parser.c --> psclover main program
src/preprocessor.c --> pclover main program
src/type.c --> Class type system
src/utf_mb_str.c --> UTF8 and Multi byte string code.
src/vm.c --> Clover Virtual Machine
src/vtable.c --> Implementation of Clover variable table
src/xfunc.c --> My original xfuncs.
src/clover.h --> Clover header file
src/common.h --> Clover header file(inner hidden header)
src/debug.h --> my debugging systems for memory leacks
Dependences
onig(oniguruma)
pthread
dl
m(math)
iconv
curses or cursesw
readline
Command ->
clover --> Clover VM engine.
cclover --> compile the script(.cl) or compile the class script(.clc)
iclover --> interructive Clover
psclover --> parser of Clover
pclover --> preprocessor of Clover
Hello World ->
$ cat > a.cl <<EOF
echo("HELLO WORLD");
EOF
$ cclover a.cl
$ clover a.cl
HELLO WORLD
Samples ->
$ iclover
clover > Command.pwd()
=> /Users/ab25cq
clover > Command.pwd().toString().scan(/./).join("+").toCommand().less()
=> /+U+s+e+r+s+/+a+b+2+5+c+q+/
Manual(Japanese)
http://wonderwand.net/~ab25cq/