示例#1
0
文件: axlcomp.c 项目: nilqed/aldor
void
compPhaseSave(EmitInfo finfo, Foam foam, Stab stab)
{
	SymeList symes = 0;
	AbSyn	 macs;
	phStart(PH_PutIntermed);

	macs = macexGetMacros();
	if (emitIsOutputNeededOrWarn(finfo, FTYPENO_SYMEEXPR)) {
		symes = emitCollectIntermedSymes(stab, foam);
		emitTheSymbolExpr(finfo, symes, macs);
		listFree(Syme)(symes);
	}
	if (emitIsOutputNeededOrWarn(finfo, FTYPENO_INTERMED)) {
		symes = emitCollectIntermedSymes(stab, foam);
		emitTheIntermed(finfo, symes, foam, macs);
		listFree(Syme)(symes);
		phLibStats(emitFileName(finfo, FTYPENO_INTERMED));
		if (emitDependsWanted())
			emitTheDependencies(finfo);
	}
	if (emitIsOutputNeededOrWarn(finfo, FTYPENO_FOAMEXPR)) {
		emitTheFoamExpr(finfo, foam);
	}

	phEnd((PhPrFun) 0, (PhPrFun) 0, (Pointer) NULL);
}
示例#2
0
文件: axlcomp.c 项目: nilqed/aldor
void
compFileInit(EmitInfo finfo)
{
	phStartAll(cmdVerboseFlag);

	macexInitFile();
	scobindInitFile();
	stabInitFile();
	ablogInit();
	sposInit();
	comsgInit();
	arFileInit(emitFileName(finfo, FTYPENO_INTERMED), 
		   emitGetFileIdName(finfo));
}
示例#3
0
文件: axlcomp.c 项目: nilqed/aldor
/*
 * Compile .as file, returning error count.
 */
int
compSourceFile(EmitInfo finfo)
{
	AbSyn		ab;
	Stab		stab;
	Foam		foam;
	int		msgCount;
 
	compFileInit(finfo);
	breakSetRoot(NULL);
 
	stab = stabFile();
 
	ab = compFileFront(finfo, stab, NULL, NULL);
	breakSetRoot(ab);
 
	if (emitIsOutputNeededOrWarn(finfo, FTYPENO_CPP)) {
		/* Need to inspect finfo to get the filename */
		FileName fn = emitFileName(finfo, FTYPENO_INTERMED);
		genCpp(ab,fnameDir(fn),fnameName(fn));
		emitTheCpp();
	}

	if (compIsMoreAfterFront(finfo)) {
		foam = compFileMiddle(finfo, stab, ab);
 
		compFileSave(finfo, stab, foam);
		compFileBack(finfo, foam);
 
		foamFree(foam);
	}
 
	msgCount = comsgErrorCount();
	compFileFini(finfo);
	/* abFree(ab); !! ab is seeping into types. */
	if (msgCount < 1) breakInterrupt();
 
	return msgCount;
}
示例#4
0
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
    QWidget * central_widget = new QWidget();
    QGridLayout * layout = new QGridLayout();

    QScrollArea * area = new QScrollArea();
    DisplayWidget * display = new DisplayWidget();
    QLabel * info_label = new QLabel("");

    area->setWidget(display);

    layout->addWidget(area);
    layout->addWidget(info_label);
    layout->setRowStretch(0, 1);

    central_widget->setLayout(layout);
    setCentralWidget(central_widget);

    initMenu();

    showMaximized();

    connect(this, SIGNAL(emitFileName(QString )), display, SLOT(loadFile(QString )));
}
示例#5
0
void MainWindow::openFile()
{
    QString file_name = QFileDialog::getOpenFileName(this, tr("Открытие"));
    if (!file_name.isEmpty()) emit emitFileName(file_name);
}