Example #1
0
static bool commandline(char expr[])
{
  int wc;
  char line[stringsize], *words[2];
  strncat(strcpy(line, ""), expr, stringsize-1);
  wc = FindWords(line, words, 2);
  if(wc == 1 && strcmp(words[0], "exit") == 0)
    exit(0);
  if(wc == 1 && strcmp(words[0], "info") == 0)
  {
    Write(BANNER);
    printmeminfo();
    printhashtable();
    return True;
  }
  if(wc == 1 && strcmp(words[0], "time") == 0)
  {
    timing = !timing;
    Write(timing ? "True" : "False");
    return True;
  }
  if(wc == 1 && strcmp(words[0], "reload") == 0)
  {
    Write(Load(NULL) ? "True" : "");
    return True;
  }
  if(wc == 2 && strcmp(words[0], "load") == 0)
  {
    Write(Load(words[1]) ? "True" : "");
    return True;
  }
  return False;
}
Example #2
0
void InitOptions(bool console, char *path)
{
  FILE *fp;
  strcat(inipath, getAmaPath());
  strcat(inipath, AMAINI);
  fp = fopen(inipath, "r");

  if (fp == NULL)
  {
    int k = 0;
    inipath[0] = '\0';
    if(path)
    {
      strcpy(inipath, path);
      k = strlen(inipath);
      while(k > 0 && inipath[k-1] != '\\' && inipath[k-1] != '/') k--;
    }
    strcpy(inipath+k, AMAINI);
    fp = fopen(inipath, "r");
  }
  if(fp)
  {
    char line[stringsize], *words[4];
    while(fgets(line, sizeof(line), fp))
      if(FindWords(line, words, 4) >= 4 && strcmp(words[0], "||") == 0 && strcmp(words[2], "=") == 0)
        SetOption(words[1], words[3]);
    fclose(fp);
  }

  if(!console)
  {
    SetOption("ConPromptMulti", ">>> ");
    SetOption("ConPromptSingle", "> ");
  }
}
Example #3
0
int main() {
	LoadDictionary("dictionary.txt");
	
	const char * test1results[] = { "ait", "qat", "dae", "quiz", "zed", "zax", "zit", "zea", "aue", "eau", "eat", "adz", "tuque", "ita", "quat", "qua", "uta", "tui", "tix", "tai", "tae", "taxi", "tau", "tax", "tad", "daut", "daze", "zati", "aitu", "adze", "quai", "quad", "quit", "taed" };
	const int test1count = 34;
	const int test1score = 35;
	Results results1 = FindWords("dzxeaiqut", 3, 3);
	checkEquals(results1, test1results, test1count, test1score, "test1");
	FreeWords(results1);

	const char * test2results[] = { "ply", "flir", "eik", "oye", "yuk", "wye", "reik", "wey", "rei", "plue", "ewt", "euk", "ire", "rew", "rue", "tye", "kir", "top", "toph", "lure", "ruly", "toy", "ure", "puer", "tyer", "lie", "yup", "pot", "yew", "fly", "uey", "puli", "upo", "lye", "ilk", "opt", "plu", "lur", "eyot", "kue", "poh", "phot", "pho", "pye", "flukier", "puy", "pul", "hot", "pur", "jot", "joy", "hop", "hoy", "flu", "weir", "oyer", "weil", "plie", "typo", "yeuk", "iure", "pyot", "puir", "pulk", "puly", "pure", "puri", "lire", "lier", "lieu", "erupt", "kilp", "kier", "kuri", "toyer", "glue", "flue", "twyer", "plier", "plyer", "pulik", "gluer", "gluey", "glyph", "fluyt", "fluey", "flier", "flyer", "yukier", "pulier", "gluier", "fluier" };
	const int test2count = 92;
	const int test2score = 117;
	Results results2 = FindWords("qwertyuioplkjhgf", 4, 4);
	checkEquals(results2, test2results, test2count, test2score, "test2");
	FreeWords(results2);

	const char * test3results[] = { "lou", "mol", "cert", "wex", "holk", "rew", "jupon", "mon", "upon", "rec", "rev", "crew", "poh", "rex", "vex", "hom", "mop", "mou", "til", "noh", "nom", "jol", "only", "kit", "lit", "once", "pol", "noup", "pom", "oup", "lop", "ilk", "upo", "hop", "hon", "holy", "wert", "moly", "reck", "trew", "oncer", "vert", "verb", "brew", "moup", "klik", "polk", "poly", "loup", "treck", "ponce" };
	const int test3count = 51;
	const int test3score = 55;
	Results results3 = FindWords("qwertzxcvbmnjklpolkiujhyt", 5, 5);
	checkEquals(results3, test3results, test3count, test3score, "test3");
	FreeWords(results3);

	const char * test4results[] = { "dad", "add", "dada" };
	const int test4count = 3;
	const int test4score = 3;
	Results results4 = FindWords("dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada", 10, 10);
	checkEquals(results4, test4results, test4count, test4score, "test4");
	FreeWords(results4);

	const char * test5results[] = { "not", "bos", "oon", "bone", "tote", "noo", "non", "nebs", "nos", "bosket", "tete", "nek", "tee", "oot", "nonettos", "keb", "ono", "kons", "tot", "bon", "oos", "sot", "ons", "ten", "snoeks", "tet", "ketones", "oke", "sooks", "ton", "bot", "sen", "books", "too", "tene", "otto", "een", "kon", "note", "ene", "obe", "set", "sneb", "boo", "eek", "bet", "toot", "bee", "ben", "tone", "teen", "toetoe", "obo", "bootee", "sob", "one", "skeet", "ket", "tes", "tokens", "toe", "bes", "skeen", "nene", "eon", "ken", "nob", "net", "knees", "nee", "onos", "neb", "betook", "ens", "bonnet", "bete", "son", "neon", "obs", "oes", "bonks", "ose", "see", "nott", "besee", "noon", "nook", "oons", "ketone", "oont", "toes", "tent", "toon", "tons", "beento", "nenes", "kens", "eons", "took", "ebon", "boose", "eten", "book", "boot", "knot", "boon", "bott", "been", "nonbook", "beet", "bene", "koto", "bent", "bonk", "onto", "keto", "seen", "kete", "ones", "keet", "botone", "toko", "toke", "none", "nett", "nete", "tonk", "sone", "teek", "snot", "snob", "sook", "etens", "soot", "neks", "soon", "nobs", "noes", "okes", "nose", "oose", "tose", "beset", "boos", "tenons", "knee", "keen", "sket", "kebs", "besot", "keno", "kent", "knob", "toetoes", "obos", "tees", "ebook", "tens", "sett", "sekt", "sent", "snee", "seek", "sene", "tenon", "skee", "sken", "skeo", "notebook", "esne", "bosk", "bees", "bens", "obes", "enes", "noons", "nooks", "ottos", "tenet", "tenno", "tenne", "toons", "botte", "bonne", "beton", "benet", "benne", "bento", "boons", "tokes", "token", "nonet", "obento", "neons", "snook", "noose", "nones", "tonne", "tonks", "beknot", "teens", "tones", "snoot", "snoke", "snoek", "soote", "nonette", "notes", "bones", "totes", "onset", "boson", "kotos", "keeno", "kenos", "kente", "netes", "teene", "tense", "tetes", "ebons", "sonne", "seton", "sente", "tenes", "betes", "benes", "obese", "nektons", "neese", "betokens", "nebek", "knobs", "tennos", "tennes", "betons", "entetee", "bennet", "bonnes", "bennes", "ketose", "tonnes", "snooks", "snokes", "sootes", "bookoo", "bottes", "ketene", "keenos", "kennet", "nekton", "tenson", "entete", "settee", "sonnes", "setons", "sennet", "sonnet", "beseen", "nebeks", "botonee", "boneset", "betoken", "nonetto", "tonette", "bookoos", "bootees", "kennett", "ketenes", "nonbooks", "botonnee", "nonettes", "tonettes", "nonobese" };
	const int test5count = 274;
	const int test5score = 559;
	Results results5 = FindWords("notebooknotenotesnotnotebooknotenotesnotnotebooknotenotesnotnotebooknotenotesnotnotebooknotenotesnotnotebooknotenotesnotnotebooknotenotesnotnotebooknotenotesnot", 8, 20);
	checkEquals(results5, test5results, test5count, test5score, "test5");
	FreeWords(results5);

	FreeDictionary();

	std::cout << "Done!" << std::endl;

	return 0;
}
Example #4
0
static void amaobj(char path[], char filename[])
{
  char command[stringsize], s[stringsize], *words[stringsize];
  int k, handle = -1, count;
  bool echo = False;
  
  InitOptions(False, path);
  CreateInterpreter();
  if(!Load(filename) || !InitRemote()) return;
  for(;;)
  {
    getstring(">> ", command);
    if(echo) WriteString(command);
    WriteString("\n");
    count = FindWords(command, words, stringsize);
    if(count == 2 && strcmp(words[0], "object") == 0)
    {
      DropRemote(handle);
      handle = CreateRemote(words[1]);
    }
    else if(count >= 2 && strcmp(words[0], "call") == 0)
    {
      if(handle < 0)
        WriteString("No object selected");
      else
      {
        starttiming();
        for(k=2; k < count; k++) PutRemote(handle, words[k]);
        CallRemote(handle, words[1]);
        WriteString("<\n");
        while(GetRemote(handle, s, stringsize))
        {
          WriteString(s);
          WriteString("\n");
        }
        WriteString(">\n");
        stoptiming();
      }
    }
    else if(count == 1 && strcmp(words[0], "echo") == 0)
      echo = !echo;
    else if(count == 1 && strcmp(words[0], "time") == 0)
      timing = !timing;
    else if(count == 1 && strcmp(words[0], "exit") == 0)
      break;
    else
      WriteString("???\n");
    WriteString("\n");
  }
}