Example #1
0
void outputSetToVal(const ioPort *out, uint8_t val)
{
	if(val)
		outputSet(out);
	else
		outputClear(out);
}
void MainWindow::set()
{
    setDialog->show();
    setDialog->saveSetPath = projectPath;
    isConfigured = true;
    connect(setDialog,SIGNAL(outputSet()),this,SLOT(getSetInfo()));
}
/* Parser parsing 
 * create first follow nullable and table then parsing token
 * finally output parsing tree
 * */
void Parser:: startParsing(vector<Token*> tokens){
	
	vector<Nonterminal*>::iterator itr;
	vector<list<string> > starting_Production;
	list<string> body;

	//find nullable
	for( itr = non_terminals.begin(); itr!= non_terminals.end(); ++itr ){
		(*itr) -> nullable = nullable( (*itr) -> term );
	}

	// add a production: S -> Program $
	Nonterminal* startState = new Nonterminal("S");
	startState -> nullable = non_terminals[0] -> nullable;
	non_terminals.push_back( startState );
	body.push_back( non_terminals[0]-> term );
	body.push_back( "$" );
	starting_Production.push_back(body);
	grammar.insert( make_pair("S", starting_Production) );

	//find first
	for( itr = non_terminals.begin(); itr!= non_terminals.end(); ++itr ){
		if ( (*itr) -> first.empty() ){
			(*itr) -> first = first( (*itr) -> term );		
		}
	}

	set<string>:: iterator itr2;
	
	//find follow
	follow();

	//output set.txt include nullable first and follow
	outputSet();
	
	// build Parsing table by if nullalbe is exist
	for(itr = non_terminals.begin(); itr != non_terminals.end(); ++itr){
		if( (*itr)->nullable ){
			for(set<string>::iterator follow_itr = (*itr) -> follow.begin(); \
							follow_itr != (*itr) -> follow.end(); ++follow_itr ){
				if( (*itr)->first.find( (*follow_itr) ) == (*itr)->first.end() ){
					map<string, map<string, int> >::iterator non_terminal_find_itr = parsingTable.find( (*itr)-> term );
					if ( non_terminal_find_itr == parsingTable.end() ){
						//parsingTable.insert( make_pair((*itr),   ) );	
					}
					else{
						non_terminal_find_itr -> second.insert( make_pair(*follow_itr, (*itr)-> production_nullable ) );
					}
				}
			}
		}
	}
	
	// output table
	outputParingTable();
	
	// create Parsing Tree and ouput it
	createParsingTree(tokens);
}
Example #4
0
void lldLedSend(RegsChainDescriptor* interface)
{
	uint8_t i;
	uint8_t j;

	outputClear(interface->clk_);//clock falling edge
	outputClear(interface->oe_);//set OE to low
	
	for(i = 0; i < interface->regsNum_; i++)
	{
		for (j = 0; j < 8; j++)
		{
			outputClear(interface->clk_);//clock falling edge
			outputSetToVal(interface->data_, (0x01 & (interface->buffer_[(interface->regsNum_ - 1) - i] >> (7-j)))^LED_ON);
			outputSet(interface->clk_);//clock rising edge
		}
	}
	outputSet(interface->oe_);//set OE to high
}
Set::Set(QMainWindow *parent) : QDialog(parent),
    set(new Ui::SetDialog)
{
    set->setupUi(this);
    createConfigurationFile();
    connect(set->buttonBox->button(QDialogButtonBox::Ok), SIGNAL(clicked()), this, SLOT(createConfigurationFile()));
    connect(set->buttonBox->button(QDialogButtonBox::Ok), SIGNAL(clicked()), SIGNAL(outputSet()));
    connect(set->buttonBox->button(QDialogButtonBox::Ok),SIGNAL(clicked()), this, SLOT(hide()));
    connect(set->buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(createConfigurationFile()));
    connect(set->buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), SIGNAL(outputSet()));
    connect(set->buttonBox->button(QDialogButtonBox::Cancel),SIGNAL(clicked()),this,SLOT(hide()));
}
Example #6
0
int JSampleObj::outputType(int n) { 
  int type = JDataType::last;
  JLinkObj* link = (JLinkObj*)inputSet(n+IN_LAST).first();
  if (link) {
    if (!typeCounter++)
      type = link->from->outputType(link->fn);
    typeCounter--;
  }
  if (type == JDataType::last) {
    link = (JLinkObj*)outputSet(n).first();
    if (link) {
      if (!typeCounter++)
        type = link->to->inputType(link->tn);
      typeCounter--;
    }
  }
  return type;
}