CHDK_DE Vorschauversion  Trunk Rev. 5292
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
run-ubasic.c-Dateireferenz
#include "../../modules/ubasic.h"
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
+ Include-Abhängigkeitsdiagramm für run-ubasic.c:

gehe zum Quellcode dieser Datei

Funktionen

int main (int argc, char *argv[])
 

Variablen

static const char program_static []
 

Dokumentation der Funktionen

int main ( int  argc,
char *  argv[] 
)

Definiert in Zeile 56 der Datei run-ubasic.c.

57 {
58  char *program;
59  if (argc == 1) {
60  // buildin program
61  program = (char *) program_static;
62  } else {
63  assert(argc == 2);
64  FILE * f = fopen(argv[1], "rb");
65  if (!f) {
66  perror("Error opening file");
67  exit(-1);
68  }
69 
70  fseek(f,0, SEEK_END);
71  int sz = ftell(f);
72  fseek(f,0, SEEK_SET);
73  program = (char *) malloc(sz+3);
74  int szr = fread(program,1,sz, f);
75  fclose(f);
76  if (szr != sz) {
77  perror("Error reading program");
78  }
79  printf("size: %d, read: %d \n", sz, szr);
80  program[sz] = '\n';
81  program[sz+1] = 0;
82  }
83 
84  printf("Program:\n%s\n=====================================\n\n", program);
85  ubasic_init(program);
86  do {
87  ubasic_run();
88  } while(!ubasic_finished());
89 
90  if (ubasic_error){
91  const char *msg;
94  } else {
96  }
97  fprintf(stderr, "Ubasic error near Line %d: %s\n", ubasic_linenumber(), msg);
98  }
99 
100  return 0;
101 }

Variablen-Dokumentation

const char program_static[]
static
Initialisierung:
=
"sleep 1000\n\
if a<1 then let a=2\n\
if b<1 then let b=3\n\
for s=1 to a\n\
shoot\n\
gosub \"incEv\"\n\
next s\n\
shoot\n\
end\n\
\n\
:incEv \n\
\n\
for n=1 to b\n\
click \"right\"\n\
next n\n\
return\n"

Definiert in Zeile 36 der Datei run-ubasic.c.