38 lines
		
	
	
	
		
			1,020 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1,020 B
		
	
	
	
		
			C
		
	
	
	
	
	
/*  Copyright (c) 2019 ACK Project.
 | 
						|
 *  See the copyright notice in the ACK home directory,
 | 
						|
 *  in the file "Copyright".
 | 
						|
 *
 | 
						|
 */
 | 
						|
#ifndef BODY_H_
 | 
						|
#define BODY_H_
 | 
						|
 | 
						|
#include "em_arith.h"
 | 
						|
#include "em_label.h"
 | 
						|
 | 
						|
 | 
						|
struct node;
 | 
						|
struct scopelist;
 | 
						|
 | 
						|
 | 
						|
void MarkDef(register struct node *nd, unsigned short flags, int on);
 | 
						|
 | 
						|
/* Assert statement */
 | 
						|
void AssertStat(register struct node *expp, unsigned short line);
 | 
						|
/** Assign statement */
 | 
						|
void AssignStat(register struct node *left, register struct node *right);
 | 
						|
/** Procedure call statement */
 | 
						|
void ProcStat(register struct node *nd);
 | 
						|
 | 
						|
/** ??? */
 | 
						|
void ChkForStat(register struct node *nd);
 | 
						|
/** ??? */
 | 
						|
void EndForStat(register struct node *nd);
 | 
						|
arith CodeInitFor(register struct node *nd, int priority);
 | 
						|
void CodeFor(struct node *nd, int stepsize, label l1, label l2);
 | 
						|
void CodeEndFor(struct node *nd, int stepsize, label l1, label l2, arith tmp2);
 | 
						|
 | 
						|
/* With statement */
 | 
						|
void WithStat(struct node *nd);
 | 
						|
void EndWith(struct scopelist *saved_scl, struct node *nd);
 | 
						|
 | 
						|
#endif /* BODY_H_ */
 |