56 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*  Copyright (c) 2019 ACK Project.
 | 
						|
 *  See the copyright notice in the ACK home directory,
 | 
						|
 *  in the file "Copyright".
 | 
						|
 *
 | 
						|
 */
 | 
						|
#ifndef CODE_H_
 | 
						|
#define CODE_H_
 | 
						|
 | 
						|
#include "em_arith.h"
 | 
						|
#include "em_label.h"
 | 
						|
 | 
						|
struct def;
 | 
						|
struct node;
 | 
						|
struct type;
 | 
						|
struct desig;
 | 
						|
 | 
						|
void routine_label(register struct def * df);
 | 
						|
void RomString(register struct node *nd);
 | 
						|
void RomReal(register struct node *nd);
 | 
						|
void BssVar(void);
 | 
						|
arith CodeBeginBlock(register struct def *df);
 | 
						|
void CodeEndBlock(register struct def *df, arith StackAdjustment);
 | 
						|
void CodeExpr(register struct node *nd, register struct desig *ds,
 | 
						|
		label true_label);
 | 
						|
void CodeCall(register struct node *nd);
 | 
						|
void RangeCheck(register struct type *tpl, register struct type *tpr);
 | 
						|
 | 
						|
/*	Generate code to push the value of the expression "nd"
 | 
						|
    on the stack.
 | 
						|
*/
 | 
						|
void CodePExpr(register struct node *nd);
 | 
						|
 | 
						|
/*	Generate code to push the address of the designator "nd"
 | 
						|
    on the stack.
 | 
						|
 */
 | 
						|
void CodeDAddress(struct node *nd);
 | 
						|
 | 
						|
/*	Generate code to store the expression on the stack
 | 
						|
    into the designator "nd".
 | 
						|
 */
 | 
						|
void CodeDStore(register struct node *nd);
 | 
						|
 | 
						|
/* Generate code to convert long to int */
 | 
						|
void Long2Int(void);
 | 
						|
/* Generate code to convert int to long */
 | 
						|
void Int2Long(void);
 | 
						|
/* Generate code to convert int to real */
 | 
						|
void Int2Real(arith size);
 | 
						|
/* Generate code to convert real to int */
 | 
						|
void Real2Int(void);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#endif /* CODE_H_ */
 |