logoISU  

CS456 - Systems Programming

Spring 2025

Displaying ./code/lexyacc/example4.y

/*

Compile with :
> lex example4.l
> yacc -d example4.y
> gcc lex.yy.c y.tab.c -o example4 -lfl

*/
%{
#include <stdio.h>
#include <string.h>

void yyerror(const char *str)
{
	fprintf(stderr,"error: %s\n",str);
}

int yywrap()
{
	return 1;
}

main()
{
	yyparse();
}

%}

%token NUMBER TOKHEAT STATE TOKTARGET TOKTEMPERATURE

%%

commands: /* empty */
	| commands command
	;


command:
	heat_switch
	|
	target_set
	;

heat_switch:
	TOKHEAT STATE 
	{
		printf("\tHeat turned on or off\n");
	}
	;

target_set:
	TOKTARGET TOKTEMPERATURE NUMBER
	{
		printf("\tTemperature set\n");
	}
	;