46 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*  Copyright (c) 2019 ACK Project.
 | |
|  *  See the copyright notice in the ACK home directory, 
 | |
|  *  in the file "Copyright".
 | |
|  *
 | |
|  *  Created on: 2019-02-27
 | |
|  *  
 | |
|  */
 | |
| #ifndef ENTER_H_
 | |
| #define ENTER_H_
 | |
| 
 | |
| /* Forward declarations. */
 | |
| struct type;
 | |
| struct node;
 | |
| struct scope;
 | |
| struct paramlist;
 | |
| struct def;
 | |
| 
 | |
| 
 | |
| struct def *Enter(char *name, int kind, struct type  *type, int pnam);
 | |
| struct def *EnterType(char *name, struct type  *type);
 | |
| void EnterEnumList(struct node *Idlist, register struct type  *type);
 | |
| void EnterFieldList(struct node *Idlist, register struct type  *type, struct scope *scope,
 | |
| 	arith *addr);
 | |
| /*	Enter a list of identifiers representing variables into the
 | |
| 	name list. "type" represents the type of the variables.
 | |
| 	"local" is set if the variables are declared local to a
 | |
| 	procedure.
 | |
| */
 | |
| void EnterVarList(struct node *Idlist, struct type  *type, int local);
 | |
| /*	Create (part of) a parameterlist of a procedure.
 | |
| 	"ids" indicates the list of identifiers, "tp" their type, and
 | |
| 	"VARp" indicates D_VARPAR or D_VALPAR.
 | |
| */
 | |
| void EnterParamList(struct paramlist **ppr, struct node *Idlist, struct type  *type,
 | |
| 	int VARp, arith *off);
 | |
| /*	From the current scope, the list of identifiers "ids" is
 | |
| 	exported. Note this fact. If the export is not qualified, make
 | |
| 	all the "ids" visible in the enclosing scope by defining them
 | |
| 	in this scope as "imported".
 | |
| */
 | |
| void EnterExportList(struct node *Idlist, int qualified);
 | |
| void CheckForImports(struct def *df);
 | |
| void EnterFromImportList(struct node *idlist, struct def *FromDef, struct node *FromId);
 | |
| void EnterImportList(struct node *idlist, int local, struct scope *sc);
 | |
| 
 | |
| #endif /* ENTER_H_ */
 |