mirror of
https://github.com/jeremysrand/abCalc.git
synced 2025-02-06 10:30:11 +00:00
Implement some basic mode tracking
This commit is contained in:
parent
e96affc7ad
commit
b691e28672
5
Makefile
5
Makefile
@ -1,11 +1,12 @@
|
||||
OBJS=abCalc.o abCalcExpr.o abCalcExprReal.o abCalcExprInt.o abCalcStack.o
|
||||
OBJS=abCalc.o abCalcExpr.o abCalcExprReal.o abCalcExprInt.o abCalcStack.o abCalcMode.o
|
||||
NAME=abCalc
|
||||
|
||||
all: $(NAME)
|
||||
|
||||
abCalcExpr.o: abCalcExpr.h
|
||||
abCalcExprReal.o: abCalcExpr.h
|
||||
abCalcExprReal.o: abCalcExpr.h abCalcExprReal.h
|
||||
abCalcStack.o: abCalcExpr.h abCalcStack.h
|
||||
abCalcMode.o: abCalcMode.h abCalcExpr.h
|
||||
|
||||
$(NAME): $(OBJS)
|
||||
cc -o $(NAME) $(OBJS)
|
||||
|
@ -14,7 +14,7 @@ typedef enum abCalcExprType {
|
||||
|
||||
|
||||
typedef double abCalcRealType;
|
||||
typedef long abCalcIntType;
|
||||
typedef unsigned long abCalcIntType;
|
||||
|
||||
|
||||
typedef struct abCalcExpr {
|
||||
|
8
abCalcExprReal.h
Normal file
8
abCalcExprReal.h
Normal file
@ -0,0 +1,8 @@
|
||||
/*
|
||||
abCalcExprReal.h
|
||||
By: Jeremy Rand
|
||||
*/
|
||||
|
||||
|
||||
void abCalcExprRealInit(void);
|
||||
|
47
abCalcMode.c
Normal file
47
abCalcMode.c
Normal file
@ -0,0 +1,47 @@
|
||||
/*
|
||||
abCalcMode.c
|
||||
By: Jeremy Rand
|
||||
*/
|
||||
|
||||
|
||||
#include "abCalcMode.h"
|
||||
|
||||
|
||||
|
||||
static abCalcModeIntBase gBase = abCalcModeDecBase;
|
||||
static int gIntWidth = AB_CALC_MODE_MAX_INT_WIDTH;
|
||||
|
||||
|
||||
void abCalcModeInit(void)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
abCalcModeIntBase abCalcModeGetBase(void)
|
||||
{
|
||||
return gBase;
|
||||
}
|
||||
|
||||
|
||||
void abCalcModeSetBase(abCalcModeIntBase base)
|
||||
{
|
||||
if ((base >= abCalcModeIntBaseMin) &&
|
||||
(base < abCalcModeIntBaseMax)) {
|
||||
gBase = base;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int abCalcModeGetIntWidth(void)
|
||||
{
|
||||
return gIntWidth;
|
||||
}
|
||||
|
||||
|
||||
void abCalcModeSetIntWidth(int width)
|
||||
{
|
||||
if ((width > 0) &&
|
||||
(width <= AB_CALC_MODE_MAX_INT_WIDTH)) {
|
||||
gIntWidth = width;
|
||||
}
|
||||
}
|
33
abCalcMode.h
Normal file
33
abCalcMode.h
Normal file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
abCalcMode.h
|
||||
By: Jeremy Rand
|
||||
*/
|
||||
|
||||
|
||||
#include "abCalcExpr.h"
|
||||
|
||||
|
||||
typedef enum abCalcModeIntBase
|
||||
{
|
||||
abCalcModeIntBaseMin = 0,
|
||||
abCalcModeBinBase = 0,
|
||||
abCalcModeOctBase,
|
||||
abCalcModeDecBase,
|
||||
abCalcModeHexBase,
|
||||
|
||||
abCalcModeIntBaseMax
|
||||
} abCalcModeIntBase;
|
||||
|
||||
|
||||
#define AB_CALC_MODE_MAX_INT_WIDTH ((sizeof(abCalcIntType) * 8))
|
||||
|
||||
|
||||
void abCalcModeInit(void);
|
||||
|
||||
abCalcModeIntBase abCalcModeGetBase(void);
|
||||
|
||||
void abCalcModeSetBase(abCalcModeIntBase base);
|
||||
|
||||
int abCalcModeGetIntWidth(void);
|
||||
|
||||
void abCalcModeSetIntWidth(int width);
|
Loading…
x
Reference in New Issue
Block a user