Exemplo n.º 1
0
static void
WriteUserRoutine(FILE *file, routine_t *rt)
{
	fprintf(file, "\n");
	fprintf(file, "/* %s %s */\n", rtRoutineKindToStr(rt->rtKind), rt->rtName);
	WriteMigExternal(file);
	fprintf(file, "%s %s\n", ReturnTypeStr(rt), rt->rtUserName);
    fprintf(file, "#if\t%s\n", LintLib);
    fprintf(file, "    (");
    WriteList(file, rt->rtArgs, WriteNameDecl, akbUserArg, ", " , "");
    fprintf(file, ")\n");
    WriteList(file, rt->rtArgs, WriteUserVarDecl, akbUserArg, ";\n", ";\n");
    fprintf(file, "{ ");
    fprintf(file, "return ");
    fprintf(file, "%s(", rt->rtUserName);
    WriteList(file, rt->rtArgs, WriteNameDecl, akbUserArg, ", ", "");
    fprintf(file, "); }\n");
    fprintf(file, "#else\n");
	if (BeAnsiC) {
		fprintf(file, "(\n");
		WriteList(file, rt->rtArgs, WriteUserVarDecl, akbUserArg, ",\n", "\n");
		fprintf(file, ");\n");
    } else {
		fprintf(file, "#if\t%s\n", NewCDecl);
		fprintf(file, "(\n");
		WriteList(file, rt->rtArgs, WriteUserVarDecl, akbUserArg, ",\n", "\n");
		fprintf(file, ");\n");
		fprintf(file, "#else\n");

		fprintf(file, "    ();\n");
		fprintf(file, "#endif\t/* %s */\n", NewCDecl);
	}
	fprintf(file, "#endif\t/* %s */\n",  LintLib);
}
Exemplo n.º 2
0
Arquivo: header.c Projeto: Prajna/mach
static void
WriteServerRoutine(FILE *file, const routine_t *rt)
{
    fprintf(file, "\n");
    fprintf(file, "/* %s %s */\n", rtRoutineKindToStr(rt->rtKind), rt->rtName);
    WriteMigExternal(file);
    fprintf(file, "%s %s\n", ReturnTypeStr(rt), rt->rtServerName);
    fprintf(file, "#if\t%s\n", LintLib);
    fprintf(file, "    (");
    WriteList(file, rt->rtArgs, WriteNameDecl, akbServerArg, ", " , "");
    fprintf(file, ")\n");
    WriteList(file, rt->rtArgs, WriteServerVarDecl,
	      akbServerArg, ";\n", ";\n");
    fprintf(file, "{ ");
    if (!rt->rtProcedure)
	fprintf(file, "return ");
    fprintf(file, "%s(", rt->rtServerName);
    WriteList(file, rt->rtArgs, WriteNameDecl, akbServerArg, ", ", "");
    fprintf(file, "); }\n");
    fprintf(file, "#else\n");
    fprintf(file, "(\n");
    WriteList(file, rt->rtArgs, WriteServerVarDecl,
	      akbServerArg, ",\n", "\n");
    fprintf(file, ");\n");
    fprintf(file, "#endif\n");
}
Exemplo n.º 3
0
bool StreamOut::Write(const char * first, ...) {
    if(!fd_out) return false;
    va_list vl;
    va_start(vl, first);
    WriteList(first, vl);
    va_end(vl);
    return true;
}
Exemplo n.º 4
0
// save options -------------------------------------------------------------
void __fastcall TMainWindow::SaveOpt(void)
{
    TIniFile *ini=new TIniFile(IniFile);
    
    ini->WriteInteger("opt","rnxver",     RnxVer);
    ini->WriteInteger("opt","rnxfile",    RnxFile);
    ini->WriteString ("opt","rnxcode",    RnxCode);
    ini->WriteString ("opt","runby",      RunBy);
    ini->WriteString ("opt","marker",     Marker);
    ini->WriteString ("opt","markerno",   MarkerNo);
    ini->WriteString ("opt","markertype", MarkerType);
    ini->WriteString ("opt","name0",      Name[0]);
    ini->WriteString ("opt","name1",      Name[1]);
    ini->WriteString ("opt","rec0",       Rec[0]);
    ini->WriteString ("opt","rec1",       Rec[1]);
    ini->WriteString ("opt","rec2",       Rec[2]);
    ini->WriteString ("opt","ant0",       Ant[0]);
    ini->WriteString ("opt","ant1",       Ant[1]);
    ini->WriteString ("opt","ant2",       Ant[2]);
    ini->WriteFloat  ("opt","apppos0",    AppPos[0]);
    ini->WriteFloat  ("opt","apppos1",    AppPos[1]);
    ini->WriteFloat  ("opt","apppos2",    AppPos[2]);
    ini->WriteFloat  ("opt","antdel0",    AntDel[0]);
    ini->WriteFloat  ("opt","antdel1",    AntDel[1]);
    ini->WriteFloat  ("opt","antdel2",    AntDel[2]);
    ini->WriteString ("opt","comment0",   Comment[0]);
    ini->WriteString ("opt","comment1",   Comment[1]);
    ini->WriteString ("opt","rcvoption",  RcvOption);
    ini->WriteInteger("opt","navsys",     NavSys);
    ini->WriteInteger("opt","obstype",    ObsType);
    ini->WriteInteger("opt","freqtype",   FreqType);
    ini->WriteString ("opt","exsats",     ExSats);
    ini->WriteInteger("opt","tracelevel", TraceLevel);
    ini->WriteInteger("opt","rnxtime",(int)RnxTime.time);
    ini->WriteString ("opt","codemask_1", CodeMask[0]);
    ini->WriteString ("opt","codemask_2", CodeMask[1]);
    ini->WriteString ("opt","codemask_3", CodeMask[2]);
    ini->WriteString ("opt","codemask_4", CodeMask[3]);
    ini->WriteString ("opt","codemask_5", CodeMask[4]);
    ini->WriteString ("opt","codemask_6", CodeMask[5]);
    ini->WriteInteger("opt","autopos",    AutoPos);
    ini->WriteInteger("opt","scanobs",    ScanObs);
    ini->WriteInteger("opt","outiono",    OutIono);
    ini->WriteInteger("opt","outtime",    OutTime);
    ini->WriteInteger("opt","outleaps",   OutLeaps);
    
    ini->WriteInteger("set","timestartf", TimeStartF ->Checked);
    ini->WriteInteger("set","timeendf",   TimeEndF   ->Checked);
    ini->WriteInteger("set","timeintf",   TimeIntF   ->Checked);
    ini->WriteString ("set","timey1",     TimeY1     ->Text);
    ini->WriteString ("set","timeh1",     TimeH1     ->Text);
    ini->WriteString ("set","timey2",     TimeY2     ->Text);
    ini->WriteString ("set","timeh2",     TimeH2     ->Text);
    ini->WriteString ("set","timeint",    TimeInt    ->Text);
    ini->WriteInteger("set","timeunitf",  TimeUnitF  ->Checked);
    ini->WriteString ("set","timeunit",   TimeUnit   ->Text);
    ini->WriteString ("set","infile",     InFile     ->Text);
    ini->WriteString ("set","outdir",     OutDir     ->Text);
    ini->WriteString ("set","outfile1",   OutFile1   ->Text);
    ini->WriteString ("set","outfile2",   OutFile2   ->Text);
    ini->WriteString ("set","outfile3",   OutFile3   ->Text);
    ini->WriteString ("set","outfile4",   OutFile4   ->Text);
    ini->WriteString ("set","outfile5",   OutFile5   ->Text);
    ini->WriteString ("set","outfile6",   OutFile6   ->Text);
    ini->WriteString ("set","outfile7",   OutFile7   ->Text);
    ini->WriteInteger("set","outdirena",  OutDirEna  ->Checked);
    ini->WriteInteger("set","outfileena1",OutFileEna1->Checked);
    ini->WriteInteger("set","outfileena2",OutFileEna2->Checked);
    ini->WriteInteger("set","outfileena3",OutFileEna3->Checked);
    ini->WriteInteger("set","outfileena4",OutFileEna4->Checked);
    ini->WriteInteger("set","outfileena5",OutFileEna5->Checked);
    ini->WriteInteger("set","outfileena6",OutFileEna6->Checked);
    ini->WriteInteger("set","outfileena7",OutFileEna7->Checked);
    ini->WriteInteger("set","format",     Format     ->ItemIndex);
    
    WriteList(ini,"hist","inputfile",InFile->Items);
    
    ini->WriteInteger("viewer","color1",  (int)TTextViewer::Color1);
    ini->WriteInteger("viewer","color2",  (int)TTextViewer::Color2);
    ini->WriteString ("viewer","fontname",TTextViewer::FontD->Name);
    ini->WriteInteger("viewer","fontsize",TTextViewer::FontD->Size);
    delete ini;
}
Exemplo n.º 5
0
void Ide::FindInFiles(bool replace) {
	CodeEditor::FindReplaceData d = editor.GetFindReplaceData();
	CtrlRetriever rf;
	rf(ff.find, d.find)
	  (ff.replace, d.replace)
	  (ff.ignorecase, d.ignorecase)
	  (ff.samecase, d.samecase)
	  (ff.wholeword, d.wholeword)
	  (ff.wildcards, d.wildcards)
	  (ff.regexp, d.regexp)
	;
	WriteList(ff.find, d.find_list);
	WriteList(ff.replace, d.replace_list);
	ff.Sync();
	if(IsNull(~ff.folder))
		ff.folder <<= GetUppDir();
	ff.style <<= STYLE_NO_REPLACE;
	ff.Sync();
	ff.itext = editor.GetI();
	ff.Setup(replace);
	
	int c = ff.Execute();

	ff.find.AddHistory();
	ff.replace.AddHistory();

	rf.Retrieve();
	d.find_list = ReadList(ff.find);
	d.replace_list = ReadList(ff.replace);
	editor.SetFindReplaceData(d);
	
	if(c == IDOK) {
		ffound.HeaderTab(2).SetText("Source line");
		Renumber();
		ff.find.AddHistory();
		ff.files.AddHistory();
		ff.folder.AddHistory();
		ff.replace.AddHistory();
		Progress pi("Found %d files to search.");
		pi.AlignText(ALIGN_LEFT);
		Index<String> files;
		if(ff.workspace) {
			const Workspace& wspc = GetIdeWorkspace();
			for(int i = 0; i < wspc.GetCount(); i++)
				SearchForFiles(files, GetFileFolder(PackagePath(wspc[i])),
					           ~ff.files, ~ff.readonly, pi);
		}
		else
			SearchForFiles(files, NormalizePath(~~ff.folder, GetUppDir()), ~ff.files, ~ff.readonly, pi);
		if(!pi.Canceled()) {
			String pattern;
			RegExp rx, *regexp = NULL;
			if(ff.regexp) {
				rx.SetPattern(~ff.find);
				regexp = &rx;
				pattern = "dummy";
			}
			else
			if(ff.wildcards) {
				String q = ~ff.find;
				for(const char *s = q; *s; s++)
					if(*s == '\\') {
						s++;
						if(*s == '\0') break;
						pattern.Cat(*s);
					}
					else
					switch(*s) {
					case '*': pattern.Cat(WILDANY); break;
					case '?': pattern.Cat(WILDONE); break;
					case '%': pattern.Cat(WILDSPACE); break;
					case '#': pattern.Cat(WILDNUMBER); break;
					case '$': pattern.Cat(WILDID); break;
					default:  pattern.Cat(*s);
					}
			}
			else
				pattern = ~ff.find;
			pi.SetTotal(files.GetCount());
			ShowConsole2();
			ffound.Clear();
			pi.SetPos(0);
			int n = 0;
			for(int i = 0; i < files.GetCount(); i++) {
				pi.SetText(files[i]);
				if(pi.StepCanceled()) break;
				if(!IsNull(pattern)) {
					if(!SearchInFile(files[i], pattern, ff.wholeword, ff.ignorecase, n, regexp))
						break;
				}
				else {
					ErrorInfo f;
					f.file = files[i];
					f.lineno = 1;
					f.linepos = 0;
					f.kind = 0;
					f.message = files[i];
					ffound.Add(f.file, 1, f.message, RawToValue(f));
					ffound.Sync();
					n++;
				}
			}
			if(!IsNull(pattern))
				ffound.Add(Null, Null, AsString(n) + " occurrence(s) have been found.");
			else
				ffound.Add(Null, Null, AsString(n) + "  matching file(s) have been found.");
			ffound.HeaderTab(2).SetText(Format("Source line (%d)", ffound.GetCount()));
		}
	}
}
Exemplo n.º 6
0
static void WriteC(Cell *c, bool parentheses)
{
  int k;
  FuncDef *fun;

  if(c==NULL) return;
  switch(c->tag)
  {
    case APPLY:
      if(parentheses) WriteString("(");
      WriteApply(c);
      if(parentheses) WriteString(")");
      break;
    case ARG:
      if(c->value>0)
        Write("ARG(%d)", c->value);
      else
        Write("LOCAL(%d)", -c->value);
      break;
    case INT:
      Write("%ld", integer(c));
      break;
    case REAL:
      Write("%lg", real(c));
      break;
    case CHAR:
      Write("'%c'", c->value);
      break;
    case BOOLEAN:
      WriteString(c->value ? "True" : "False");
      break;
    case NULLTUPLE:
      WriteString("()");
      break;
    case LIST:
      WriteList(c, parentheses);
      break;
    case NIL:
      WriteString("Nil");
      break;
    case STRUCT:
      WriteElems(c, STRUCT, parentheses ? "(" : "", " ", parentheses ? ")" : "", True);
      break;
    case PAIR:
      WriteElems(c, PAIR, "(", ", ", ")", False);
      break;
    case RECORD:
      WriteElems(c, RECORD, "{", ", ", "}", False);
      break;
    case _IF:
      if(parentheses) WriteString("(");
      WriteString("_if ");
      WriteC(c->left, True);
      WriteString(" ");
      WriteC(c->right->left, True);
      WriteString(" ");
      WriteC(c->right->right, True);
      if(parentheses) WriteString(")");
      break;
    case MATCH:
      if(parentheses) WriteString("(");
      WriteString("_match ");
      WriteC(c->left, True);
      WriteString(" ");
      WriteC(c->right, True);
      if(parentheses) WriteString(")");
      break;
    case MATCHARG:
      if(parentheses) WriteString("(");
      for(;;)
      {
        WriteString("_match ");
        WriteC(c->left, True);
        WriteString(" ");
        if(c->value>0)
          Write("ARG(%d)", c->value);
        else
          Write("LOCAL(%d)", -c->value);
        c = c->right;
        if(c == NULL) break;
        WriteString(" /\\ ");
      }
      if(parentheses) WriteString(")");
      break;
    case MATCHTYPE:
      if(c->value == INT)
        WriteString("num");
      else if(c->value == BOOLEAN)
        WriteString("bool");
      else if(c->value == CHAR)
        WriteString("char");
      else
        WriteString("...");
      break;
    case ALIAS:
      if(parentheses) WriteString("(");
      WriteC(c->left, False);
      WriteString(" = ");
      WriteC(c->right, False);
      if(parentheses) WriteString(")");
      break;
    case UNDEFINED:
      WriteString("undefined");
      break;
    case GENERATOR:
      WriteString("[");
      WriteElems(c->left, LIST, "", ", ", "", False);
      WriteString(" | ");
      for(c=c->right; c->tag==GENERATOR; c=c->right)
      {
        if(c->left->right)
        {
          WriteElems(c->left->left, LIST, "", ", ", "", False);
          WriteString(" <- ");
          WriteElems(c->left->right, LIST, "", ", ", "", False);
        }
        else
          WriteC(c->left->left, False);
        if(c->right->tag==GENERATOR) WriteString("; ");
      }
      WriteString("]");
      break;
    case SYSFUNC1:
      fun = getfunction(c->value);
      if(parentheses) WriteString("(");
      WriteString(fun->name);
      WriteString(" ");
      WriteC(c->left, True);
      if(parentheses) WriteString(")");
      break;
    case SYSFUNC2:
      fun = getfunction(c->value);
      if(parentheses) WriteString("(");
      WriteC(c->left, True);
      WriteString(" ");
      WriteString(fun->name);
      WriteString(" ");
      WriteC(c->right, True);
      if(parentheses) WriteString(")");
      break;
    case APPLICATION:
      fun = getfunction(c->value);
      if(parentheses) WriteString("(");
      WriteString(fun->name);
      if(fun->argcount == 0)
        ;
      else if(fun->argcount == 1)
        push(c->right);
      else
      {
        for(k=fun->argcount; k>1; k--)
        {
          push(c->left);
          c = c->right;
        }
        push(c);
      }
      for(k=fun->argcount; k>0; k--)
      {
        WriteString(" ");
        WriteC(pop(), True);
      }
      if(parentheses) WriteString(")");
      break;
    case FUNC: case TYPE:
      WriteFunc(getfunction(c->value)->name);
      break;
    case ERROR:
      Write("error(%s)", getfunction(c->value)->name);
      break;
    case CONST:
      WriteString("(Const ");
      WriteC(c->left, False);
      WriteString(")");
      break;
    case STRICTDIRECTOR: case LAZYDIRECTOR:
      WriteDirector(c->value, c->tag);
      if(parentheses) WriteString("(");
      WriteC(c->left, True);
      if(parentheses) WriteString(")");
      break;
    case LETREC:
      if(parentheses) WriteString("(");
      WriteC(c->right, False);
      WriteString(" WHERE ");
      k = 0;
      for(c=c->left; c->tag==LIST; c=c->right)
      {
        Write("LOCAL(%d) = ", -(k--));
        WriteC(c->left, False);
        WriteString("; ");
      }
      WriteString("ENDWHERE");
      if(parentheses) WriteString(")");
      break;
    case LAMBDA:
      WriteC(c->left, False);
      WriteString(" -> ");
      WriteC(c->right, False);
      break;
    case LAMBDAS:
      WriteElems(c, LAMBDAS, "(", " | ", ")", False);
      break;
    case VARIABLE:
      WriteString(getfunction(c->left->value)->name);
      break;
    case SET1: case SET2:
      WriteString("[");
      WriteC(c->left->left, False);
      for(k=1; k<=c->value; k++) Write(" x%d", k);
      WriteString(" | (x1");
      for(k=2; k<=c->value; k++) Write(", x%d", k);
      WriteString(") <- ");
      WriteC(c->left->right->right, False);
      if(c->left->right->left)
      {
        WriteString("; ");
        WriteC(c->left->right->left, False);
        for(k=1; k<=c->value; k++) Write(" x%d", k);
      }
      WriteString("]");
      break;
    default:
      systemerror(7);
  }
}