-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
144 lines (119 loc) · 4.43 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
+++ 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/