Beispiel #1
0
void FiPage::deleteFi()
{
   if(!mFi) return;

   int ret = QMessageBox::warning(this, tr("FI Page")
              , tr("\nDelete FI '%1 (%2)'?\t").arg(mFi->name()).arg(mFi->type())
              , QMessageBox::Yes | QMessageBox::Cancel
              , QMessageBox::Cancel);

  if(ret != QMessageBox::Yes) return;

  mFilu->deleteRecord("fi", mFi->id());
  // FIXME Add check if success/error after delete

  QString msg = tr("FI deleted: Id=%1 Name=%2 Type=%3")
                      .arg(mFi->id())
                      .arg(mFi->name())
                      .arg(mFi->type());

  emitMessage(FUNC, msg);
  record(FUNC, msg);

  mFiName->setText("");
  mFiType->setCurrentIndex(-1);
  mExpiryDate->setText("");

  delete mFi;
  mFi = 0;
  setSymbolTable();
  mLookUp->setFocus();
  mLookUp->search();
}
Beispiel #2
0
void FiPage::deleteSymbol()
{
  if(!mSymbols) return;
  if(!mSymbolId) return;
  if(mSymbols->size() < 2)
  {
    emitMessage(FUNC, tr("I will not delete the one and only symbol"), eWarning);
    return;
  }

  int ret = QMessageBox::warning(this, tr("FI Page")
            , tr("\nDelete Symbol '%1 %2 %3'?\t")
                .arg(mSymbols->caption())
                .arg(mSymbols->market())
                .arg(mSymbols->owner())
            , QMessageBox::Yes | QMessageBox::Cancel
            , QMessageBox::Cancel);

  if(ret != QMessageBox::Yes) return;

  mFilu->deleteRecord("symbol", mSymbols->id());
  // FIXME Add check if success/error after delete

  QString msg = tr("Symbol deleted: Id=%1 Caption=%2 Market=%3 Owner=%4")
                  .arg(mSymbols->id())
                  .arg(mSymbols->caption())
                  .arg(mSymbols->market())
                  .arg(mSymbols->owner());

  emitMessage(FUNC, msg);
  record(FUNC, msg);

  setSymbolTable();
}
Beispiel #3
0
/**
 * \brief Entry point.
 * \param argc The number of input parameters.
 * \param argv The input parameters.
 */
int main(int argc, char *argv[]) {

	/* the resource manager must be initialized before any
	 * further actions are implemented */
	rm_init(&resource_mgr);

	if (process_options(argc, argv) == 1) {
		rm_cleanup_resources(&resource_mgr);
		exit(EXIT_FAILURE);
	}

	if (cc_options.print_only_errors != 1) {
		printf("Input: %s\n", cc_options.input_file);
		printf("Output: %s\n", cc_options.output_file);
		printf("IR: %s\n", cc_options.ir_file);
	}

	yyin = fopen(cc_options.input_file, "r");
	if (!yyin) {
		fprintf(stderr,
				"Input file could not be opened for reading. Maybe, file does not exist?");
	} else {
		setSymbolTable(createSymbol());
		yyparse();
		fclose(yyin);
		irCode_t* ircode = NULL;

		if (cc_options.ir_file != NULL) {
			FILE *irFile;
			irFile = fopen(cc_options.ir_file, "w+");

			// Test symbolTable
			print_symTab(irFile);

			// get ir code and print it into irFile
			struct func_t *func, *tmp;
			HASH_ITER(hh, getSymbolTable()->symFunc, func, tmp) {
				if (func->symbol != NULL) {
					fprintf(irFile, "Function %s:\n", func->id);
					printIRCode(irFile, func->symbol->ircode);
				}
			}

			fclose(irFile);
		}

		yyout = fopen(cc_options.output_file, "w+");
		if (!yyout) {
			fprintf(stderr,
					"Output file could not be opened for writing. Maybe, file does not exist?");
		} else {
			int ret = mips32gen(yyout, ircode, getSymbolTable());
			if (ret != 0) {
				fprintf(stderr, "Error generating mips32 code with code: %d\n",
						ret);
			}
			fclose(yyout);
		}
	}
Beispiel #4
0
void FiPage::saveSymbol()
{
  if(!mSymbols) return;

  if(mSymbolId)
  {
    if(mSymbols->caption() == mSymbol->text()          and
       mSymbols->market()  == mMarket->currentText()   and
       mSymbols->owner()   == mProvider->currentText()     )
    {
      emitMessage(FUNC, tr("No changes to save"));
      return;
    }
  }

  int ret = mFilu->addSymbol(mSymbol->text(), mMarket->currentText(), mProvider->currentText()
                             , mFi->id(), mSymbolId);

  if(sadFilu(FUNC, tr("Fail to save symbol"), eWarning)) return;

  mFilu->updateField("quality", Filu::ePlatinum, "symbol", ret);

  QString msg;
  if(mSymbolId)
  {
    msg = tr("Symbol updated: Id=%1\n"
                "\tFrom: Caption=%2 Market=%3 Owner=%4\n"
                "\tTo:   Caption=%5 Market=%6 Owner=%7")
                .arg(mSymbolId)
                .arg(mSymbols->caption())
                .arg(mSymbols->market())
                .arg(mSymbols->owner())
                .arg(mSymbol->text())
                .arg(mMarket->currentText())
                .arg(mProvider->currentText());
  }
  else
  {
    mSymbolId = ret;
    msg = tr("Symbol added: Id=%1 Caption=%2 Market=%3 Owner=%4 FI=%5")
            .arg(mSymbolId)
            .arg(mSymbol->text())
            .arg(mMarket->currentText())
            .arg(mProvider->currentText())
            .arg(mFi->name());
  }

  emitMessage(FUNC, msg);
  record(FUNC, msg);

  setSymbolTable(mSymbolId);
}
Beispiel #5
0
void FiPage::fiClicked(int fiId, int /* marketId */)
{
  if(mFi) delete mFi;
  mFi = mFilu->getFi(fiId);
  mMainBox->setTitle(QString("%1 (%2 FiId:%3)").arg(mFi->name(), mFi->type())
                                               .arg(mFi->id()));

  mFiType->clear();
  mFiType->addItems(mFilu->getFiTypeNames());

  mFiName->setText(mFi->name());
  mFiType->setCurrentIndex(mFiType->findText(mFi->type()));
  mExpiryDate->setText(mFi->expiryDate().toString(Qt::ISODate));

  setSymbolTable();
  setSplitTable();
}
void JSSegmentedVariableObject::finishCreation(VM& vm)
{
    Base::finishCreation(vm);
    setSymbolTable(vm, SymbolTable::create(vm));
}