Example #1
0
void parseRn(){
	if(NT == 1000){				
		read("id");
	}else if(NT == 2000){		
		read("int");	
	}else if(NT == 3000){
		read("str");		
	}else if(NT == 4000){
		if(keyword == "true"){
			read("true");
			buildTree("<true>", 0);
		}else if(keyword == "false"){
			read("false");
			buildTree("<false>", 0);
		}else if(keyword == "nil"){
			read("nil");
			buildTree("<nil>" , 0);
		}else if(keyword == "("){					
			read("(");			
			parseE();
			read(")");								
		}else if(keyword == "dummy"){
			read("dummy");
			buildTree("<dummy>", 0);
		}
	}
}
Example #2
0
void parseE(){	
	if(NT == 4000 && keyword == "let"){		
		read("let");
		parseD();		
		read("in");		
		parseE();
		buildTree("let", 2);			
	}else if(NT == 4000 && keyword == "fn"){
		read("fn");
		parseVb();
		int n= 1;
		while(NT == 1000 || (NT == 4000 && keyword == "(")){
			parseVb();
			n++;
		}
		read(".");
		parseE();
		buildTree("lambda", n+1);
	}else{		
		parseEw();
	}
}
Example #3
0
void parseDb(){
	if(NT == 1000){
		parseVl();
		if(NT == 4000 && keyword == "="){
			read("=");
			parseE();
			buildTree("=", 2);			
		}else if(NT == 1000 || (NT == 4000 && keyword == "(")){				
			parseVb();
			int n = 1;
			while(NT == 1000 || (NT == 4000 && keyword == "(")){
				parseVb();
				n++;
			}
			read("=");		
			parseE();			
			buildTree("function_form" , n+2);
		}
	}else if(NT == 4000 && keyword == "("){	
		read("(");		
		parseD();
		read(")");
	}
}
Example #4
0
plyElements parseRow(char* text,int length)
{
	switch(text[0])
	{
		case 'p':
		{
			return parseP(text,length);
		}
		case 'f':
		{
			return FORMAT;
		}
		case 'c':
		{
			return COMMENT;
		}
		case 'e':
		{
			return parseE(text,length);
		}
	}
}
Example #5
0
Steps::Steps( const char* vlist, const char* clist, const char* elist, int nIn )
    : vstepsLen( 1 ), cstepsLen( 1 ), estepsLen( 1 ), seatSteps( NULL ),
      v( 0 ), c( 0 ), e( -1 ), n( nIn )
{
    if ( vlist ) {
	parseV( vlist );
    } else {
	vsteps = (int*)malloc( sizeof(int) );
	vstepsLen = 0;
    }
    if ( clist ) {
	parseC( clist );
    } else {
	csteps = (int*)malloc( sizeof(int) );
	cstepsLen = 0;
    }
    if ( elist ) {
	parseE( elist );
    } else {
	esteps = (float*)malloc( sizeof(float) );
	estepsLen = 0;
    }
}