summaryrefslogtreecommitdiff
path: root/apps/interpreters/bas/program.h
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-10-27 07:53:12 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-10-27 07:53:12 -0600
commit4ef5633f361ab5302007045dcef945043d6d6225 (patch)
tree1806fe0ec9221c4e6c7439419e8b57bfe7865d29 /apps/interpreters/bas/program.h
parentf2fe892334074612e4e3159c754b65d13bc348fc (diff)
downloadnuttx-4ef5633f361ab5302007045dcef945043d6d6225.tar.gz
nuttx-4ef5633f361ab5302007045dcef945043d6d6225.tar.bz2
nuttx-4ef5633f361ab5302007045dcef945043d6d6225.zip
Port of BAS 2.4 to NuttX by Alan Carvalho de Assis
Diffstat (limited to 'apps/interpreters/bas/program.h')
-rw-r--r--apps/interpreters/bas/program.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/apps/interpreters/bas/program.h b/apps/interpreters/bas/program.h
new file mode 100644
index 000000000..5b6646d99
--- /dev/null
+++ b/apps/interpreters/bas/program.h
@@ -0,0 +1,35 @@
+#ifndef PROGRAM_H
+#define PROGRAM_H
+
+#include "programtypes.h"
+#include "token.h"
+
+extern struct Program *Program_new(struct Program *this);
+extern void Program_destroy(struct Program *this);
+extern void Program_norun(struct Program *this);
+extern void Program_store(struct Program *this, struct Token *line, long int where);
+extern void Program_delete(struct Program *this, const struct Pc *from, const struct Pc *to);
+extern void Program_addScope(struct Program *this, struct Scope *scope);
+extern struct Pc *Program_goLine(struct Program *this, long int line, struct Pc *pc);
+extern struct Pc *Program_fromLine(struct Program *this, long int line, struct Pc *pc);
+extern struct Pc *Program_toLine(struct Program *this, long int line, struct Pc *pc);
+extern int Program_scopeCheck(struct Program *this, struct Pc *pc, struct Pc *fn);
+extern struct Pc *Program_dataLine(struct Program *this, long int line, struct Pc *pc);
+extern struct Pc *Program_imageLine(struct Program *this, long int line, struct Pc *pc);
+extern long int Program_lineNumber(const struct Program *this, const struct Pc *pc);
+extern struct Pc *Program_beginning(struct Program *this, struct Pc *pc);
+extern struct Pc *Program_end(struct Program *this, struct Pc *pc);
+extern struct Pc *Program_nextLine(struct Program *this, struct Pc *pc);
+extern int Program_skipEOL(struct Program *this, struct Pc *pc, int dev, int tr);
+extern void Program_trace(struct Program *this, struct Pc *pc, int dev, int tr);
+extern void Program_PCtoError(struct Program *this, struct Pc *pc, struct Value *v);
+extern struct Value *Program_merge(struct Program *this, int dev, struct Value *value);
+extern int Program_lineNumberWidth(struct Program *this);
+extern struct Value *Program_list(struct Program *this, int dev, int watchIntr, struct Pc *from, struct Pc *to, struct Value *value);
+extern struct Value *Program_analyse(struct Program *this, struct Pc *pc, struct Value *value);
+extern void Program_renum(struct Program *this, int first, int inc);
+extern void Program_unnum(struct Program *this);
+extern int Program_setname(struct Program *this, const char *filename);
+extern void Program_xref(struct Program *this, int chn);
+
+#endif