cirilisp/symtable.h

27 lines
1.1 KiB
C
Raw Normal View History

#pragma once
#include "util.h"
typedef enum
{
internalSymbol,
variableSymbol
} symbolType;
int addSymbolInternal(char *symbol, object (*function)());
int addSymbolVariable(char *symbol, object variable);
/* служе за различите методе дефинисања нових симбола у језику
* враћају 1 уколико је нови симбол успешно додат, а 0 уколико није
* (постоји симбол са истим именом) */
int symbolExists(char *symbol);
/* враћа 1 уколико симбол постоји и 0 у супротном */
symbolType typeOf(char *symbol);
object (*internalFunction(char *symbol)) (object parameters);
/* враћа показивач на функцију уколико је симбол дефинисан као интерна
* функција, NULL уколико симбол није функција или уколико не постоји
* */
object referVariable(char *symbol);
/* враћа вредност на коју се односи име симбола у табели */