コード例 #1
0
ファイル: parser.c プロジェクト: nanorarias/compilador-micro
void primaria(reg_expr * reg) {
    /* <primaria> -> <identificador>
	 *             | CONSTANTE
	 *             | PARENIZQUIERDO <expresión> PARENDERECHO
	 */
	token tok = next_token();
	switch (tok) {
		case ID:
			identificador(reg);
			break;

		case CONSTANTE:
			match(CONSTANTE);
			*reg = procesar_cte(); // #procesar_cte
			break;

		case PARENIZQUIERDO:
			match(PARENIZQUIERDO);
			expresion(reg);
			match(PARENDERECHO);
			break;

		default:
			syntax_error(tok, "PRIMARIA");
	}
}
コード例 #2
0
ファイル: parser.c プロジェクト: LeonardoSegovia/GitHubFacu
/*
 *	<primaria> →
 *	<identificador> |
 *	CONSTANTE #procesar_cte |
 * 	(<expresión>)
 */	
void primaria(struct reg_expr *preg) {
	token tok;
	
	tok = prox_token();
	switch (tok) {
		case ID:
			identificador(preg);
			break;
		case CONSTANTE:
			match(CONSTANTE);
			*preg = procesar_cte();
			break;
		case PARENIZQUIERDO:
			match(PARENIZQUIERDO);
			expresion(preg);
			match(PARENDERECHO);
			break;
		default:
			error_sintactico(tok);
			return;
	}
}