Enter text in the first box, and click to see it run.
22 |
23 | Script:
24 |
34 |
35 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/INSTALL:
--------------------------------------------------------------------------------
1 | Getting Started with Hecl
2 | =========================
3 |
4 | How to compile and run simple Hecl programs.
5 |
6 | 1) Hecl is built with the Ant tool, so you'll need that in order to
7 | build Hecl.
8 |
9 | 2) To compile the J2SE version of Hecl, do this:
10 |
11 | ant packageCommandline
12 |
13 | 3) At this point, you have a Hecl.jar file in the directory
14 | jars/j2se/Hecl.jar
15 |
16 | java -jar jars/j2se/Hecl.jar
17 | hecl> puts "hello world"
18 | hello world
19 |
20 | 4) Testing. If you wish to test that your installation passes the
21 | test suite:
22 |
23 | java -jar jars/j2se/Hecl.jar tests/suite.hcl
24 |
25 | and, to get some performance numbers:
26 |
27 | java -jar jars/j2se/Hecl.jar tests/performance.hcl
28 |
29 | 5) Java ME versions - see docs/j2me.html
30 |
31 | 6) Android - to compile and install the Android example, do:
32 |
33 | ant packageAndroid
34 |
35 | You will need to set up android/android.properties to point the
36 | right place, though.
37 |
--------------------------------------------------------------------------------
/NOTICE:
--------------------------------------------------------------------------------
1 | This product includes software developed by David N. Welton
2 | (http://www.dedasys.com/) and Wolfgang Kechel .
3 |
4 | It also includes various ideas borrowed from Jacl.
5 |
6 | Important: feel free to use this code with or in (L)GPL projects. I
7 | don't think there is any problem between the two licenses.
8 |
--------------------------------------------------------------------------------
/README.markdown:
--------------------------------------------------------------------------------
1 | Hecl Programming Language
2 | =========================
3 |
4 | The Hecl Programming Language is an attempt to create a programming
5 | language that works the way I want it to. The goals I have in mind
6 | are:
7 |
8 | * Simplicity. The language shouldn't be complicated. It should
9 | "scale down", which means that even someone without much experience
10 | programming ought to be able to use it and be productive with it,
11 | even if their code isn't beautiful.
12 |
13 | * Power. Experts should be able to use it and not feel limited.
14 |
15 | * Small Core. The core language should be simple and compact.
16 | Modules provide additional functionality.
17 |
18 | * Extensible. Hecl may be used to extend Hecl, as well as Java, of
19 | course. The syntax is flexible enough that it is possible to create
20 | new control structures, for example, entirely in Hecl itself.
21 |
22 | * Embeddable. Hecl is easy to embed into your own Java applications.
23 |
24 | * JavaME/J2ME. Hecl is built to run in Java ME, which provides a much
25 | smaller API than 'regular' Java.
26 |
27 | To get started, read the INSTALL file and the documentation, starting
28 | with docs/index.html.
29 |
30 | ----
31 |
32 | David N. Welton - davidw@dedasys.com
33 |
--------------------------------------------------------------------------------
/TODO-tests-docs:
--------------------------------------------------------------------------------
1 | # This commands need to be documented and tested.
2 |
3 | base64::encode / decode
4 | bgerror - documented, not tested.
5 |
6 | exp
7 | false
8 | filesize
9 |
10 | float
11 | floor
12 |
13 | getprop
14 |
15 | hclear
16 | hcontains
17 | hkeys
18 | hremove
19 | hset
20 | http.data
21 | http.formatQuery
22 | http.geturl
23 | http.ncode
24 | http.status
25 |
26 | linsert
27 |
28 | load
29 |
30 | rename
31 |
32 | runtime.freememory
33 | runtime.totalmemory
34 |
35 | strbytelen
36 | strcmp
37 | strfind
38 |
39 | strlast
40 |
41 | strlower
42 | strrange
43 | strtrim
44 | strtriml
45 | strtrimr
46 | strupper
47 | system.gc
48 | system.getproperty
49 | system.hasproperty
50 | system.time
51 | throw
52 |
53 | tnotify
54 |
55 | twait
--------------------------------------------------------------------------------
/android/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/android/README:
--------------------------------------------------------------------------------
1 | Hecl on Android
2 | ===============
3 |
4 | This README is the documentation for Hecl on Android. It's not much,
5 | but until things settle down and we begin to commit things to DocBook,
6 | it's better than nothing.
7 |
8 | Building Hecl
9 | -------------
10 |
11 | ant android-install (or android-reinstall) builds Hecl and sends it to
12 | the running Android emulator.
13 |
14 | Editing the script
15 | ------------------
16 |
17 | The package that gets sent to the emulator resides in
18 | android/bin/Hecl.apk, and is basically a .zip file. This means that
19 | it's possible to modify the Hecl script contained therein and
20 | repackage the .apk without recompiling anything:
21 |
22 | # Go to the android directory.
23 | cd android/
24 | # Replace the script.hcl file in Hecl.apk with our modifications.
25 | zip -r bin/Hecl.apk res/raw/script.hcl
26 | # Send it to the emulator.
27 | /opt/android_sdk_linux_m3-rc22a/tools/adb install bin/Hecl.apk
28 |
29 | With the Hecl script executed being res/raw/script.hcl.
30 |
31 | Android Hecl Commands
32 | ---------------------
33 |
34 | Read script.hcl to get an idea of what's going on. If you don't like
35 | some aspect of how it works, now's the time to say something! In
36 | order to get something working, I created some reflection code for
37 | Hecl, so most of the commands are, in reality, closely related to the
38 | Java classes and methods documented here:
39 |
40 | http://code.google.com/android/reference/index.html
41 |
--------------------------------------------------------------------------------
/android/README.eclipse:
--------------------------------------------------------------------------------
1 | Martin Mainusch explains how to edit Hecl/Android in Eclipse:
2 |
3 | First, in case you haven't done it already, you have to install the
4 | Android Eclipse plugin:
5 |
6 | http://code.google.com/android/intro/installing.html#installingplugin
7 |
8 | To use Eclipse with Hecl/Android, I create a new android project and
9 | just copy everything from hecl/android/ folder, meaning /src, /res and
10 | Androidmanifest.xml into the newly created project.
11 |
12 | Then, you have to set the path to /hecl/jars/j2se.jar:
13 |
14 | Select the new project in the package view in eclipse > right click >
15 | select properties > select Java Build Path > and select the tab
16 | "Libraries".
17 |
18 | Here you should see the Hecl.jar from /hecl/jars/j2se.jar. Open the
19 | tree view and select source attachment > and than "Edit" -button on
20 | the right site of the view.
21 |
22 | Now you have to select "workspace" and than navigate to the hecl/core
23 | folder.
24 |
25 | Please keep in mind that hecl has be build with (located in the settings.xml file)
27 | for debugging to work.
28 |
29 | After that, I can set a breakpoint in Hecl.java file where ever I wish
30 | and than start the debug section.
31 |
--------------------------------------------------------------------------------
/android/android.properties:
--------------------------------------------------------------------------------
1 | sdk-folder=/opt/android-sdk
2 | android-tools=/opt/android-sdk/tools
3 | android-platform=/opt/android-sdk/platforms/android-1.6
4 | android-platform-tools=/opt/android-sdk/platforms/android-1.6/tools
5 |
--------------------------------------------------------------------------------
/android/bin/Hecl.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/android/bin/Hecl.apk
--------------------------------------------------------------------------------
/android/generator/Dumper.java:
--------------------------------------------------------------------------------
1 | import java.lang.reflect.Field;
2 | import java.lang.reflect.Method;
3 |
4 | import java.util.Enumeration;
5 | import java.util.Hashtable;
6 |
7 | public class Dumper {
8 | static Hashtable unknownTypes;
9 |
10 | public static void main(String[] args) {
11 | unknownTypes = new Hashtable();
12 |
13 | try {
14 | Class c = Class.forName("android.widget.TextView");
15 | // Class c = Class.forName("android.widget.Button");
16 | Method ms[] = c.getDeclaredMethods();
17 | for (int i = 0; i < ms.length; i++) {
18 | String sig = ms[i].getReturnType().getSimpleName() + " " + ms[i].getName();
19 | Class params[] = ms[i].getParameterTypes();
20 | for (int j = 0; j < params.length; j++) {
21 | sig += " " + params[j].getSimpleName();
22 | }
23 | System.out.println(" " + sig + " :");
24 | gencode(ms[i]);
25 | }
26 |
27 | System.out.println("UNKNOWN TYPES:");
28 | for (Enumeration e = unknownTypes.keys() ; e.hasMoreElements() ;) {
29 | System.out.println(e.nextElement());
30 | }
31 | } catch (Exception e) {
32 | System.err.println(e.toString());
33 | e.printStackTrace();
34 | }
35 | }
36 |
37 | public static void gencode(Method m) {
38 | Class params[] = m.getParameterTypes();
39 | String args = "";
40 | if (params.length > 0) {
41 | int i;
42 | for (i = 0; i < params.length - 1; i++) {
43 | args += genArg(params[i], i) + ", ";
44 | }
45 | args += genArg(params[i], i);
46 | }
47 | System.out.println(genretval(m.getReturnType().getSimpleName()) + "view." + m.getName() + "(" + args + ") )");
48 | }
49 |
50 | public static String genretval(String retval) {
51 | if (retval.equals("int") || retval.equals("boolean")) {
52 | return "Thing retval = IntThing.create( ";
53 | } else if (retval.equals("void")) {
54 | return "Thing retval = null; (";
55 | }
56 | return "";
57 | }
58 |
59 | public static String genArg(Class param, int pos) {
60 | pos += 2;
61 | String p = param.getSimpleName();
62 | if (p.equals("int")) {
63 | return "IntThing.get(argv[" + pos + "])";
64 | } else {
65 | unknownTypes.put(p, 1);
66 | }
67 | return p;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/android/res/drawable/aicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/android/res/drawable/aicon.png
--------------------------------------------------------------------------------
/android/res/drawable/buttonhecl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/android/res/drawable/buttonhecl.png
--------------------------------------------------------------------------------
/android/res/drawable/heclicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/android/res/drawable/heclicon.png
--------------------------------------------------------------------------------
/android/res/layout/main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
19 |
20 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/android/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Hecl
4 |
5 |
--------------------------------------------------------------------------------
/android/src/Hecl-debug.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/android/src/Hecl-debug.apk
--------------------------------------------------------------------------------
/android/src/Hecl.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/android/src/Hecl.apk
--------------------------------------------------------------------------------
/android/src/org/hecl/android/HeclHandler.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2008 David N. Welton - DedaSys LLC - http://www.dedasys.com
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | package org.hecl.android;
17 |
18 | import org.hecl.Interp;
19 | import org.hecl.Thing;
20 |
21 | import android.os.Handler;
22 | import android.os.Message;
23 | import android.util.Log;
24 |
25 | /**
26 | * The class HeclHandler is a handler that executes the
27 | * Hecl code passed to it. This is useful for intra-thread
28 | * communication.
29 | *
30 | * @author David N. Welton
31 | * @version 1.0
32 | */
33 | public class HeclHandler extends Handler {
34 | private Interp interp = null;
35 |
36 | public HeclHandler(Interp i) {
37 | interp = i;
38 | }
39 |
40 | public void handleMessage(Message msg) {
41 | Thing script = (Thing)msg.obj;
42 | try {
43 | interp.eval(script);
44 | } catch (Exception e) {
45 | Log.v("androidhandler", "interp eval exception: " + e.toString());
46 | }
47 | }
48 | }
--------------------------------------------------------------------------------
/android/src/org/hecl/android/HeclServiceConnection.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2008 David N. Welton - DedaSys LLC - http://www.dedasys.com
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | package org.hecl.android;
17 |
18 |
19 | import org.hecl.Interp;
20 | import org.hecl.ListThing;
21 | import org.hecl.ObjectThing;
22 | import org.hecl.Thing;
23 | import android.content.ComponentName;
24 | import android.content.ServiceConnection;
25 | import android.os.Handler;
26 | import android.os.IBinder;
27 | import android.os.Message;
28 | import android.util.Log;
29 | import java.util.Vector;
30 |
31 | public class HeclServiceConnection implements ServiceConnection {
32 | public Thing onserviceconnected;
33 | public Thing onservicedisconnected;
34 |
35 | private Interp interp = null;
36 |
37 | public HeclServiceConnection(Interp i) {
38 | interp = i;
39 | }
40 |
41 | public void onServiceConnected(ComponentName name, IBinder service) {
42 | try {
43 | Vector cmdline = ListThing.get(onserviceconnected.deepcopy());
44 | cmdline.addElement(ObjectThing.create(name));
45 | cmdline.addElement(ObjectThing.create(service));
46 | interp.eval(ListThing.create(cmdline));
47 | } catch (Exception e) {
48 | Log.d("HeclServiceConnection", "Exception in onserviceconnected: "
49 | + e.toString());
50 | }
51 | }
52 | public void onServiceDisconnected(ComponentName name) {
53 | try {
54 | Vector cmdline = ListThing.get(onservicedisconnected.deepcopy());
55 | cmdline.addElement(ObjectThing.create(name));
56 | interp.eval(ListThing.create(cmdline));
57 | } catch (Exception e) {
58 | Log.d("HeclServiceConnection", "Exception in onservicedisconnected: "
59 | + e.toString());
60 | }
61 | }
62 | }
--------------------------------------------------------------------------------
/android/src/org/hecl/android/SubHecl.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2008 David N. Welton - DedaSys LLC - http://www.dedasys.com
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 |
17 | package org.hecl.android;
18 |
19 | import android.content.Intent;
20 |
21 | import android.os.Bundle;
22 |
23 | import org.hecl.Interp;
24 | import org.hecl.Thing;
25 |
26 | import android.util.Log;
27 |
28 | public class SubHecl extends Hecl
29 | {
30 | /** Called when the activity is first created. */
31 | @Override
32 | public void onCreate(Bundle heclApp)
33 | {
34 | super.onCreate(heclApp);
35 |
36 | Intent i = getIntent();
37 | Thing script = getMailBox();
38 |
39 | try {
40 | AndroidCmd.setCurrentHecl(this);
41 | interp.eval(script);
42 | } catch (Exception e) {
43 | logStacktrace(e);
44 | errmsg("Hecl Error: " + e.toString());
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/applettweak/org/hecl/applettweak/AppletTweak.java:
--------------------------------------------------------------------------------
1 | /* Copyright 20008 DedaSys LLC - http://www.dedasys.com
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | package org.hecl.applettweak;
17 |
18 | import org.microemu.app.util.AppletProducer;
19 | import java.io.File;
20 |
21 | public class AppletTweak {
22 |
23 | public static void main(String[] args) {
24 | if (args.length < 2) {
25 | usage();
26 | return;
27 | }
28 | try {
29 | File output = new File(args[1]);
30 | AppletProducer.createMidlet(args[0], output);
31 | } catch (Exception ex) {
32 | System.err.println("Error: " + ex.toString());
33 | }
34 | }
35 |
36 | private static void usage() {
37 | System.err.println("Usage: AppletTweak file:///url/to/infile.jar outfile");
38 | }
39 |
40 | }
--------------------------------------------------------------------------------
/blackberry.properties:
--------------------------------------------------------------------------------
1 | # These are needed for the time being, while we use the J2ME GUI:
2 | my.wtk.home=/opt/WTK2.5.2
3 | wtk.cldc.version=1.1
4 | cldcstr=11
5 | wtk.midp.version=2.0
6 | midpstr=20
7 | kxml=0
8 | files=1
9 | locationapi=1
10 |
11 | j2me.build=build/blackberry/final/bb
12 | j2me.pre=build/blackberry/pre/bb
13 |
14 | # Location of Blackberry JDE and Simulator:
15 |
16 | # jde.home=/opt/BlackBerry_JDE_4.7.0
17 | # simulator.dir=/opt/BlackBerry_JDE_4.7.0/simulator
18 |
19 | jde.home=/opt/BlackBerry_JDE_4.3.0
20 | simulator.dir=/opt/BlackBerry_JDE_4.3.0/simulator
21 |
22 |
--------------------------------------------------------------------------------
/blackberry/heclfile.hcl:
--------------------------------------------------------------------------------
1 | # heclfile.hcl - this lets us run a default file or select some other
2 | # file to run.
3 |
4 | # Fetch the stored file, if it exists. Otherwise, use 'hecl.hcl' on
5 | # the first root.
6 | proc StoredHeclFile {} {
7 | set hf ""
8 | catch {
9 | set hf [rms.get heclfile]
10 | }
11 | if { ne $hf "" } { return $hf }
12 | return "file:///SDCard/hecl.hcl"
13 | }
14 |
15 | # Save the selected file.
16 | proc SaveHeclFile {fname} {
17 | rms.create heclfile
18 | if { < 0 [llen [rms.list heclfile]] } {
19 | rms.set heclfile 1 $fname
20 | } else {
21 | rms.add heclfile $fname
22 | }
23 | }
24 |
25 | # Callback when we select a file.
26 | proc SelectedFile {fname} {
27 | SaveHeclFile $fname
28 | source $fname
29 | }
30 |
31 | set fname [StoredHeclFile]
32 |
33 | set err ""
34 | catch {
35 | source $fname
36 | } err
37 |
38 | # If there's a problem, we run a file selection dialog.
39 | if { ne "" $err } {
40 | set ff [filefinder -selectedcmd SelectedFile]
41 | set a [lcdui.alert -text "Error loading $fname : ${err}\nPlease select another file to run" -type confirmation -timeout forever]
42 | $a setcurrent $ff
43 | }
44 |
--------------------------------------------------------------------------------
/blackberrygui/org/hecl/blackberry/BrowserCmd.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2009
3 | * DedaSys LLC - http://www.dedasys.com
4 | *
5 | * Author: David N. Welton
6 | *
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | */
19 |
20 | package org.hecl.blackberry;
21 |
22 | import java.io.UnsupportedEncodingException;
23 |
24 | import java.util.Hashtable;
25 |
26 | import org.hecl.HeclException;
27 | import org.hecl.Interp;
28 | import org.hecl.Operator;
29 | import org.hecl.StringThing;
30 | import org.hecl.Thing;
31 |
32 | public class BrowserCmd extends Operator {
33 | public static final int OPEN = 1;
34 |
35 | public Thing operate(int cmd, Interp interp, Thing[] argv) throws HeclException {
36 | switch(cmd) {
37 | case OPEN: {
38 | BrowserLauncher bl = new BrowserLauncher(StringThing.get(argv[1]));
39 | bl.start();
40 | return null;
41 | }
42 |
43 | default:
44 | throw new HeclException("Unknown browser command '"
45 | + argv[0].toString() + "' with code '"
46 | + cmd + "'.");
47 |
48 | }
49 | }
50 |
51 | public static void load(Interp ip) throws HeclException {
52 | Operator.load(ip,cmdtable);
53 | }
54 |
55 |
56 | public static void unload(Interp ip) throws HeclException {
57 | Operator.unload(ip,cmdtable);
58 | }
59 |
60 | protected BrowserCmd(int cmdcode,int minargs,int maxargs) {
61 | super(cmdcode,minargs,maxargs);
62 | }
63 |
64 | private static Hashtable cmdtable = new Hashtable();
65 | static {
66 | try {
67 | cmdtable.put("browser.open", new BrowserCmd(OPEN,1,1));
68 | } catch (Exception e) {
69 | e.printStackTrace();
70 | System.out.println("Can't create browser commands.");
71 | }
72 |
73 | }
74 | }
--------------------------------------------------------------------------------
/blackberrygui/org/hecl/blackberry/BrowserLauncher.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2009
3 | * DedaSys LLC - http://www.dedasys.com
4 | *
5 | * Author: David N. Welton
6 | *
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | */
19 |
20 | package org.hecl.blackberry;
21 |
22 | import net.rim.blackberry.api.browser.Browser;
23 | import net.rim.blackberry.api.browser.BrowserSession;
24 |
25 | /**
26 | * The BrowserLauncher class exists solely to launch the
27 | * browser in a thread that won't block Hecl.
28 | *
29 | * @author David N. Welton
30 | * @version 1.0
31 | */
32 | public class BrowserLauncher extends Thread {
33 | private String url = null;
34 |
35 | /**
36 | * Creates a new BrowserLauncher instance.
37 | *
38 | * @param newurl a String value
39 | */
40 | public BrowserLauncher(String newurl) {
41 | url = newurl;
42 | }
43 |
44 | public void run() {
45 | BrowserSession session = Browser.getDefaultSession();
46 | session.displayPage(url);
47 | }
48 | }
--------------------------------------------------------------------------------
/blackberrygui/org/hecl/blackberry/DeviceCmds.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2010
3 | * DedaSys LLC - http://www.dedasys.com
4 | *
5 | * Author: David N. Welton
6 | *
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | */
19 |
20 | package org.hecl.blackberry;
21 |
22 | import java.util.Hashtable;
23 |
24 | import org.hecl.HeclException;
25 | import org.hecl.Interp;
26 | import org.hecl.Operator;
27 | import org.hecl.StringThing;
28 | import org.hecl.Thing;
29 |
30 | import net.rim.device.api.system.DeviceInfo;
31 |
32 | public class DeviceCmds extends Operator {
33 | public static final int VERSION = 1;
34 |
35 | public Thing operate(int cmd, Interp interp, Thing[] argv) throws HeclException {
36 | switch(cmd) {
37 | /* Fetch all records into a list of hashes. */
38 | case VERSION: {
39 | return new Thing(DeviceInfo.getPlatformVersion());
40 | }
41 |
42 | default:
43 | throw new HeclException("Unknown device command '"
44 | + argv[0].toString() + "' with code '"
45 | + cmd + "'.");
46 | }
47 | }
48 |
49 | public static void load(Interp ip) throws HeclException {
50 | Operator.load(ip,cmdtable);
51 | }
52 |
53 |
54 | public static void unload(Interp ip) throws HeclException {
55 | Operator.unload(ip,cmdtable);
56 | }
57 |
58 | protected DeviceCmds(int cmdcode,int minargs,int maxargs) {
59 | super(cmdcode,minargs,maxargs);
60 | }
61 |
62 | private static Hashtable cmdtable = new Hashtable();
63 | static {
64 | try {
65 | cmdtable.put("device.systemversion", new DeviceCmds(VERSION,0,0));
66 | } catch (Exception e) {
67 | e.printStackTrace();
68 | System.out.println("Can't create device commands.");
69 | }
70 | }
71 | }
--------------------------------------------------------------------------------
/build-tools/BBJDEVersion.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2009 DedaSys LLC - www.dedasys.com
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | import java.io.IOException;
17 | import java.io.InputStream;
18 |
19 | import java.util.jar.JarEntry;
20 | import java.util.jar.JarFile;
21 |
22 | /**
23 | * BBJDEVersion fetches a file, app.version from the
24 | * rapc.jar distributed with the Blackberry JDE
25 | *
26 | * @author David N. Welton
27 | * @version 1.0
28 | */
29 | public class BBJDEVersion {
30 |
31 | public static void main(String[] args) {
32 | try {
33 | if (args.length == 0) {
34 | throw new Exception("Need a jar file to process!");
35 | }
36 |
37 | JarFile jf = new JarFile(args[0]);
38 | JarEntry entry = jf.getJarEntry("app.version");
39 | InputStream is = jf.getInputStream(entry);
40 | /* This is more than enough to contain the version. */
41 | byte[] buf = new byte[4096];
42 | is.read(buf);
43 | String sversion = (new String(buf)).trim();
44 |
45 | /* Only print out the major/minor version numbers. */
46 | String[] res = sversion.split("\\.");
47 | System.out.println(res[0] + "." + res[1]);
48 | jf.close();
49 | } catch (Exception e) {
50 | System.err.println("BBJDEVersion Exception: " + e.toString());
51 | System.exit(-1);
52 | }
53 | }
54 | }
--------------------------------------------------------------------------------
/build-tools/README:
--------------------------------------------------------------------------------
1 | Build Tools
2 | ===========
3 |
4 | These tools are necessary to build Hecl. Antenna helps us compile
5 | things conditionally for all the various targets we want to build for.
6 |
7 | They may not be under as liberal a license as Hecl itself is.
8 |
--------------------------------------------------------------------------------
/build-tools/antenna-bin-1.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/build-tools/antenna-bin-1.0.0.jar
--------------------------------------------------------------------------------
/build-tools/lib/proguard.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/build-tools/lib/proguard.jar
--------------------------------------------------------------------------------
/build-tools/proguard.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/build-tools/proguard.jar
--------------------------------------------------------------------------------
/build-tools/proguardgui.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/build-tools/proguardgui.jar
--------------------------------------------------------------------------------
/build-tools/retrace.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/build-tools/retrace.jar
--------------------------------------------------------------------------------
/build.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Hecl build file.
4 |
5 |
6 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
43 |
44 |
46 |
47 |
48 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/cldc10midp10.properties:
--------------------------------------------------------------------------------
1 | my.wtk.home=/opt/WTK2.5.2
2 | wtk.cldc.version=1.0
3 | cldcstr=10
4 | wtk.midp.version=1.0
5 | midpstr=10
6 | kxml=0
--------------------------------------------------------------------------------
/cldc11midp20.properties:
--------------------------------------------------------------------------------
1 | my.wtk.home=/opt/WTK2.5.2
2 | wtk.cldc.version=1.1
3 | cldcstr=11
4 | wtk.midp.version=2.0
5 | midpstr=20
6 | kxml=0
7 | locationapi=1
8 | files=1
9 |
--------------------------------------------------------------------------------
/commandline/StandaloneHecl.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2005 David N. Welton, Wojciech Kocjan
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | import org.hecl.Interp;
17 | import org.hecl.Thing;
18 |
19 | import org.hecl.load.LoadCmd;
20 | import org.hecl.net.Base64Cmd;
21 | import org.hecl.net.HttpCmd;
22 |
23 | /**
24 | * StandaloneHecl is an example of how to use Hecl to run
25 | * some code that is contained within the program itself.
26 | *
27 | * @author David N. Welton
28 | * @version 1.0
29 | */
30 | public class StandaloneHecl {
31 |
32 | private static String script = "for {set i 0} {< $i 10} {incr $i} { puts $i }";
33 |
34 | public static void main(String[] args) {
35 | try {
36 | Interp interp = new Interp();
37 | Base64Cmd.load(interp);
38 | HttpCmd.load(interp);
39 | LoadCmd.load(interp);
40 | interp.evalAsyncAndWait(new Thing(script));
41 | interp.terminate();
42 | } catch (Exception e) {
43 | e.printStackTrace();
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/core/org/hecl/AnonProc.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2010 David N. Welton, DedaSys LLC
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | package org.hecl;
17 |
18 | /**
19 | * The AnonProc class implements anonymous procedures,
20 | * created like so: set aproc [proc {x} { puts $x }]
21 | *
22 | * @author David N. Welton
23 | * @version 1.0
24 | */
25 | public class AnonProc implements ClassCommand {
26 |
27 | public Thing method(Interp interp, ClassCommandInfo context, Thing[] argv)
28 | throws HeclException {
29 | Thing[] newargv = new Thing[argv.length];
30 | newargv[0] = new Thing("anonproc");
31 | for (int i = 1; i < argv.length; i++) {
32 | newargv[i] = argv[i];
33 | }
34 |
35 | RealThing rt = argv[0].getVal();
36 | Proc proc = (Proc)((ObjectThing)rt).get();
37 | return proc.cmdCode(interp, newargv);
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/core/org/hecl/ClassCommand.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2007 Wolfgang S. Kechel
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | package org.hecl;
17 |
18 | /**
19 | * The ClassCommand interface is the template for all commands
20 | * implemented in Java working on Hecl ObjectThing.
21 | *
22 | * @author Wolfgang S. Kechel
23 | * @version 1.0
24 | */
25 |
26 | public interface ClassCommand {
27 |
28 | /**
29 | * The method method takes an interpreter, a class
30 | * information and an array of Things, performs some calculations, and
31 | * returns a Thing which may be null. The
32 | * interpreter calls this method when it detects an
33 | * ObjectThing as first argument of a command on the script
34 | * level and detects a command handler for the class of the value of the
35 | * ObjectThing.
36 | *
37 | * @param interp
38 | * an Interp value
39 | * @param context A reference to the ClassInfo> describing
40 | * further details of th emethod.
41 | * @param argv A Thing[] array holding the parameters for the
42 | * method. The 0th element is the object, the 1st element is the method.
43 | *
44 | * @exception HeclException
45 | * if an error occurs
46 | */
47 | public Thing method(Interp interp, ClassCommandInfo context, Thing[] argv)
48 | throws HeclException;
49 | }
50 |
--------------------------------------------------------------------------------
/core/org/hecl/ClassCommandInfo.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2007 Wolfgang S. Kechel
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | package org.hecl;
17 |
18 | /**
19 | * The ClassCommandInfo holds information about a class command
20 | * that may be attached to an interpreter.
21 | *
22 | * @author Wolfgang S. Kechel
23 | * @version 1.0
24 | */
25 |
26 | public class ClassCommandInfo {
27 | /**
28 | * Constructor to create an instance holding a reference to the specified
29 | * class and comand.
30 | *
31 | * @param clazz The class to generate the instance for.
32 | * @param cmd The command.
33 | */
34 | ClassCommandInfo(Class clazz,ClassCommand cmd) {
35 | this.clazz = clazz;
36 | this.cmd = cmd;
37 | }
38 |
39 | /**
40 | * Gets the class of instances this command operates on.
41 | *
42 | * @return The Class on which methods on references in
43 | * ObjectThings must be assignable for the command to be
44 | * called during evaluation.
45 | */
46 | public Class forClass() {return this.clazz;}
47 |
48 | /**
49 | * Gets the ClassCommand to be called for methodes on
50 | * instances. This function is used by the interpreter to call the Java
51 | * implementation of methods on ObjectThings holding a
52 | * reference to instances of the class stored in this descriptor.
53 | *
54 | * @return The ClassCommand.
55 | */
56 | public ClassCommand getCommand() {return this.cmd;}
57 |
58 | void setCommand(ClassCommand cmd) {this.cmd = cmd;}
59 |
60 |
61 | private Class clazz;
62 | private ClassCommand cmd;
63 | }
64 |
--------------------------------------------------------------------------------
/core/org/hecl/Command.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2004-2006 David N. Welton
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | package org.hecl;
17 |
18 | /**
19 | * The Command interface is the template for all commands
20 | * implemented in Hecl.
21 | *
22 | * @author David N. Welton
23 | * @version 1.0
24 | */
25 |
26 | /* This 'abstract' apparently needs to be here for j2me stuff. */
27 |
28 | public abstract interface Command {
29 |
30 | /**
31 | * The cmdCode method takes an interpreter and an array of
32 | * Things, performs some calculations, and returns a Thing
33 | * representing the computed value, or null.
34 | *
35 | * @param interp
36 | * an Interp value
37 | * @param argv
38 | * a Thing[] value
39 | * @return A Thing representing the computed value, or
40 | * null.
41 | * @exception HeclException
42 | * if an error occurs
43 | */
44 |
45 | //void cmdCode(Interp interp, Thing[] argv) throws HeclException;
46 | Thing cmdCode(Interp interp, Thing[] argv) throws HeclException;
47 | }
48 |
--------------------------------------------------------------------------------
/core/org/hecl/Ensemble.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Created on 2005-03-07
3 | *
4 | * TODO To change the template for this generated file go to
5 | * Window - Preferences - Java - Code Style - Code Templates
6 | */
7 | package org.hecl;
8 |
9 | import java.util.Hashtable;
10 |
11 | /**
12 | * @author zoro
13 | *
14 | * TODO To change the template for this generated type comment go to Window -
15 | * Preferences - Java - Code Style - Code Templates
16 | */
17 | class Ensemble implements Command {
18 | Hashtable subcommands = new Hashtable();
19 | protected void addSubcommand(String name, Command cmd) {
20 | subcommands.put(name, cmd);
21 | }
22 | protected void removeSubcommand(String name) {
23 | subcommands.remove(name);
24 | }
25 | public Thing cmdCode(Interp interp, Thing[] argv) throws HeclException {
26 | if (argv.length < 2) {
27 | throw HeclException.createWrongNumArgsException(argv, 1,
28 | "subcommand ?params");
29 | }
30 | return null;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/core/org/hecl/FractionalThing.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2006 Wolfgang S. Kechel
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | package org.hecl;
17 |
18 | /**
19 | * The FractionalThing class is for floating point
20 | * values.
21 | *
22 | * @version 1.0
23 | */
24 | public abstract class FractionalThing extends NumberThing {
25 | public boolean isIntegral() {
26 | return false;
27 | }
28 |
29 | public boolean isFractional() {
30 | return true;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/core/org/hecl/HeclModule.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2005 Wojciech Kocjan
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | package org.hecl;
17 |
18 | import org.hecl.Interp;
19 | import org.hecl.HeclException;
20 |
21 | /**
22 | * The HeclModule interface describes what modules
23 | * implement in order to be loaded into Hecl.
24 | *
25 | * @author David N. Welton
26 | * @version 1.0
27 | */
28 | public interface HeclModule {
29 |
30 | /**
31 | * The loadModule method usually takes care of
32 | * creating commands that are present in this module.
33 | *
34 | * @param interp an Interp value
35 | * @exception HeclException if an error occurs
36 | */
37 | public void loadModule(Interp interp) throws HeclException;
38 |
39 | /**
40 | * The unloadModule method takes care of any clean up
41 | * that's necessary, such as unloading commands created by this
42 | * module.
43 | *
44 | * @param interp an Interp value
45 | * @exception HeclException if an error occurs
46 | */
47 | public void unloadModule(Interp interp) throws HeclException;
48 | }
49 |
--------------------------------------------------------------------------------
/core/org/hecl/IntegralThing.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2006 Wolfgang S. Kechel
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | package org.hecl;
17 |
18 | /**
19 | * The IntegralThing class represents integer values - in
20 | * practice, ints and longs.
21 | *
22 | * @author David N. Welton
23 | * @version 1.0
24 | */
25 | public abstract class IntegralThing extends NumberThing {
26 | public boolean isIntegral() {
27 | return true;
28 | }
29 |
30 | public boolean isFractional() {
31 | return false;
32 | }
33 |
34 | public boolean isLong() {
35 | return false;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/core/org/hecl/PutsCmd.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2004-2006 David N. Welton
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | package org.hecl;
17 |
18 | /**
19 | * PutsCmd implements the "puts" command, which for the moment
20 | * just prints some text to stdout.
21 | *
22 | * @author David N. Welton
23 | * @version 1.0
24 | */
25 |
26 | /* FIXME - needs support for other output channels. */
27 |
28 | class PutsCmd implements Command {
29 | public Thing cmdCode(Interp interp, Thing[] argv) throws HeclException {
30 | System.out.println(argv[1].toString());
31 | return null;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/core/org/hecl/RealThing.java:
--------------------------------------------------------------------------------
1 | /* Copyright 2004-2006 David N. Welton
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 | */
15 |
16 | /* $Id$ */
17 |
18 | package org.hecl;
19 |
20 | /**
21 | * The RealThing interface is the actual value contained within a
22 | * Thing. It can be of several different types - integers, strings, lists,
23 | * hashes, and so on.
24 | *
25 | * @author David N. Welton
26 | * @version 1.0
27 | */
28 | public abstract interface RealThing {
29 | public String thingclass();
30 |
31 | /**
32 | * The deepcopy method must copy a RealThing and any values
33 | * it contains.
34 | *
35 | * @return a RealThing value
36 | * @throws HeclException
37 | */
38 | public RealThing deepcopy() throws HeclException;
39 |
40 | /**
41 | * The getStringRep method returns the string representation
42 | * of a RealThing.
43 | *
44 | * @return a String representation of the value
45 | */
46 | public String getStringRep();
47 | }
48 |
--------------------------------------------------------------------------------
/docs/after.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/after.html
--------------------------------------------------------------------------------
/docs/and.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/and.html
--------------------------------------------------------------------------------
/docs/android.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/android.html
--------------------------------------------------------------------------------
/docs/append.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/append.html
--------------------------------------------------------------------------------
/docs/base64_decode.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/base64_decode.html
--------------------------------------------------------------------------------
/docs/base64_encode.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/base64_encode.html
--------------------------------------------------------------------------------
/docs/bgerror.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/bgerror.html
--------------------------------------------------------------------------------
/docs/blackberry.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/blackberry.html
--------------------------------------------------------------------------------
/docs/break.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/break.html
--------------------------------------------------------------------------------
/docs/browser_open.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/browser_open.html
--------------------------------------------------------------------------------
/docs/building_hecl.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/building_hecl.html
--------------------------------------------------------------------------------
/docs/catch.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/catch.html
--------------------------------------------------------------------------------
/docs/cd.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/cd.html
--------------------------------------------------------------------------------
/docs/chunk.xsl:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/docs/classof.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/classof.html
--------------------------------------------------------------------------------
/docs/clock.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/clock.html
--------------------------------------------------------------------------------
/docs/commands.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/commands.html
--------------------------------------------------------------------------------
/docs/continue.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/continue.html
--------------------------------------------------------------------------------
/docs/copy.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/copy.html
--------------------------------------------------------------------------------
/docs/creating_new_hecl_commands.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/creating_new_hecl_commands.html
--------------------------------------------------------------------------------
/docs/currentfile.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/currentfile.html
--------------------------------------------------------------------------------
/docs/demo_screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/demo_screenshot.png
--------------------------------------------------------------------------------
/docs/device_systemversion.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/device_systemversion.html
--------------------------------------------------------------------------------
/docs/double.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/double.html
--------------------------------------------------------------------------------
/docs/eq.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/eq.html
--------------------------------------------------------------------------------
/docs/equality.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/equality.html
--------------------------------------------------------------------------------
/docs/eval.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/eval.html
--------------------------------------------------------------------------------
/docs/exit.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/exit.html
--------------------------------------------------------------------------------
/docs/extensioncommands.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/extensioncommands.html
--------------------------------------------------------------------------------
/docs/false.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/false.html
--------------------------------------------------------------------------------
/docs/file_basename.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_basename.html
--------------------------------------------------------------------------------
/docs/file_cd.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_cd.html
--------------------------------------------------------------------------------
/docs/file_current.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_current.html
--------------------------------------------------------------------------------
/docs/file_delete.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_delete.html
--------------------------------------------------------------------------------
/docs/file_devs.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_devs.html
--------------------------------------------------------------------------------
/docs/file_du.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_du.html
--------------------------------------------------------------------------------
/docs/file_exists.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_exists.html
--------------------------------------------------------------------------------
/docs/file_hidden.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_hidden.html
--------------------------------------------------------------------------------
/docs/file_isdirectory.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_isdirectory.html
--------------------------------------------------------------------------------
/docs/file_isopen.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_isopen.html
--------------------------------------------------------------------------------
/docs/file_join.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_join.html
--------------------------------------------------------------------------------
/docs/file_list.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_list.html
--------------------------------------------------------------------------------
/docs/file_mkdir.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_mkdir.html
--------------------------------------------------------------------------------
/docs/file_mtime.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_mtime.html
--------------------------------------------------------------------------------
/docs/file_readable.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_readable.html
--------------------------------------------------------------------------------
/docs/file_rename.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_rename.html
--------------------------------------------------------------------------------
/docs/file_size.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_size.html
--------------------------------------------------------------------------------
/docs/file_split.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_split.html
--------------------------------------------------------------------------------
/docs/file_truncate.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_truncate.html
--------------------------------------------------------------------------------
/docs/file_writable.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/file_writable.html
--------------------------------------------------------------------------------
/docs/filefinder.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/filefinder.html
--------------------------------------------------------------------------------
/docs/filetolist.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/filetolist.html
--------------------------------------------------------------------------------
/docs/filter.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/filter.html
--------------------------------------------------------------------------------
/docs/float.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/float.html
--------------------------------------------------------------------------------
/docs/for.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/for.html
--------------------------------------------------------------------------------
/docs/foreach.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/foreach.html
--------------------------------------------------------------------------------
/docs/fpmath.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/fpmath.html
--------------------------------------------------------------------------------
/docs/global.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/global.html
--------------------------------------------------------------------------------
/docs/hacking_hecl_j2me.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/hacking_hecl_j2me.html
--------------------------------------------------------------------------------
/docs/hasclass.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/hasclass.html
--------------------------------------------------------------------------------
/docs/hash.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/hash.html
--------------------------------------------------------------------------------
/docs/hecl-look-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/hecl-look-right.png
--------------------------------------------------------------------------------
/docs/hecl.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: Verdana, Arial, sans-serif;
3 | font-size: 13px;
4 | margin-left: 4em;
5 | margin-right: 5em;
6 | }
7 |
8 | td {
9 | font-size: 13px;
10 | }
11 |
12 | h2 {
13 | font-size: 110%;
14 | }
15 |
16 | div.cmdsynopsis {
17 | font-family: mono;
18 | }
19 |
20 | pre.programlisting {
21 | background-color: #ccccff;
22 | padding: 1ex;
23 | margin-left: 5%;
24 | }
25 |
26 | pre.screen {
27 | padding: 1ex;
28 | margin-left: 5%;
29 | background-color: #ccffcc;
30 | }
31 |
32 | A:link {
33 | color: #3333cc;
34 | text-decoration: none;
35 | font-weight: bold;
36 | }
37 |
38 | A:visited {
39 | color: #3333cc;
40 | text-decoration: none;
41 | font-weight: normal;
42 | }
43 |
44 | A:hover {
45 | text-decoration: underline;
46 | }
47 |
48 | A.top:visited {
49 | color: #5555ff;
50 | }
51 |
52 | img {
53 | border: 0;
54 | }
55 |
56 | div.mediaobject img {
57 | background-color: #777777;
58 | padding: 1em;
59 | margin: auto;
60 | }
61 |
62 | div.screenshot {
63 | margin: auto;
64 | }
65 |
66 | div.mediaobject {
67 | margin: auto;
68 | text-align: center;
69 | }
70 |
71 | div.caption {
72 | font-size: smaller;
73 | font-weight: bold;
74 | }
75 |
76 | div.section {
77 | margin-left: 40px;
78 | margin-right: 40px;
79 | }
80 |
81 | span.guibutton {
82 | font-weight: bold;
83 | }
84 |
85 | .navheader {
86 | background-color: #f9b93e;
87 | padding-left: 10px;
88 | padding-right: 10px;
89 | }
90 |
91 | .navheader th {
92 | font-size: 25px;
93 | }
--------------------------------------------------------------------------------
/docs/hecl.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/hecl.jpg
--------------------------------------------------------------------------------
/docs/hecl.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/hecl.pdf
--------------------------------------------------------------------------------
/docs/hecl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/hecl.png
--------------------------------------------------------------------------------
/docs/hecl_javadocs.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/hecl_javadocs.html
--------------------------------------------------------------------------------
/docs/heclandjava.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/heclandjava.html
--------------------------------------------------------------------------------
/docs/heclbuilder-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/heclbuilder-screen.png
--------------------------------------------------------------------------------
/docs/hello_screenshot1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/hello_screenshot1.png
--------------------------------------------------------------------------------
/docs/http_commands.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/http_commands.html
--------------------------------------------------------------------------------
/docs/http_data.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/http_data.html
--------------------------------------------------------------------------------
/docs/http_formatQuery.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/http_formatQuery.html
--------------------------------------------------------------------------------
/docs/http_geturl.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/http_geturl.html
--------------------------------------------------------------------------------
/docs/http_ncode.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/http_ncode.html
--------------------------------------------------------------------------------
/docs/http_status.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/http_status.html
--------------------------------------------------------------------------------
/docs/if.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/if.html
--------------------------------------------------------------------------------
/docs/images/blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/blank.png
--------------------------------------------------------------------------------
/docs/images/caution.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/caution.png
--------------------------------------------------------------------------------
/docs/images/draft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/draft.png
--------------------------------------------------------------------------------
/docs/images/hecl-look-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/hecl-look-right.png
--------------------------------------------------------------------------------
/docs/images/hecl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/hecl.png
--------------------------------------------------------------------------------
/docs/images/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/home.png
--------------------------------------------------------------------------------
/docs/images/important.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/important.png
--------------------------------------------------------------------------------
/docs/images/next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/next.png
--------------------------------------------------------------------------------
/docs/images/note.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/note.png
--------------------------------------------------------------------------------
/docs/images/prev.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/prev.png
--------------------------------------------------------------------------------
/docs/images/tip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/tip.png
--------------------------------------------------------------------------------
/docs/images/toc-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/toc-blank.png
--------------------------------------------------------------------------------
/docs/images/toc-minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/toc-minus.png
--------------------------------------------------------------------------------
/docs/images/toc-plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/toc-plus.png
--------------------------------------------------------------------------------
/docs/images/up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/up.png
--------------------------------------------------------------------------------
/docs/images/warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/images/warning.png
--------------------------------------------------------------------------------
/docs/incr.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/incr.html
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/index.html
--------------------------------------------------------------------------------
/docs/installation.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/installation.html
--------------------------------------------------------------------------------
/docs/intro.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/intro.html
--------------------------------------------------------------------------------
/docs/invoke_calculator.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/invoke_calculator.html
--------------------------------------------------------------------------------
/docs/invoke_call.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/invoke_call.html
--------------------------------------------------------------------------------
/docs/invoke_camera.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/invoke_camera.html
--------------------------------------------------------------------------------
/docs/invoke_video.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/invoke_video.html
--------------------------------------------------------------------------------
/docs/j2me.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/j2me.html
--------------------------------------------------------------------------------
/docs/javame_quick_start.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidw/hecl/ba81ffc962cc76dd99f5e78945d6776b98350fa0/docs/javame_quick_start.html
--------------------------------------------------------------------------------
/docs/jdocs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Generated Documentation (Untitled)
7 |
8 |
19 |
21 |
22 |
38 |
39 |
--------------------------------------------------------------------------------
/docs/jdocs/org/hecl/files/package-frame.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | org.hecl.files
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | org.hecl.files
18 |