📄 需求分析.txt
字号:
TypeAttr功能分析:
功能:由于编译器所能分析出大致单词的类型:int、hex、double、char、string、bit、bits和bool(true或false),而实际的数据类型包括int、uint、int16、uint16、uint8、char、string、float、double、bit、bits、bool。需要判断数据类型及位长是否匹配,同时需要进行数据类型转换,将数据类型转换为可存储的类型,如:去掉char的单引号,去掉string的双引号,去掉bit的前缀“b'”,去掉bits的前缀B',将hex转换为int类型。
属性值:
string value:所有的数据最终都可以存储为字符串。
DataLen length:数据所占的字节数。
bool isInt:是否属于int数据类型
bool isDouble:是否属于double数据类型
MY_TYPE m_type:类型,不能确定时是NULL_T,
SIGNED m_signed:是否为无符号数,不能确定时为UNKNOWN。
行为动作函数:
SetType(MY_TYPE):设置数据类型
SetValue(string):设置属性值
IsConvertable(TypeAttr t):判断是否可以将其赋值给t
BitToStr():将Value值由位类型转换为1或0的字符串
BitsToStr():将value值由位串类型转换为0或1组成的字符串
IsInt(true):设置isInt为true
IsDouble(true):设置isDouble为true
HexToStr():将value值由16进制整型字符串转换为整数
CharToStr():将value值由字符型去掉单引号。
StrToStr():将value值由字符串型去掉双引号
CalcLen(); 计算数据所占的空间大小。
typedef struct{int ulen;int len} DataLen;//计算出的长度如果是
typedef enum{ISUNSIGNED,ISSINGED,UNKNOWN} SIGNED;//判断是否是无符号数。
符号类CSymbol功能分析:
功能:
属性值:
TypeAttr m_attr;
int id;
static int ID;
行为动作函数:
TypeAttr GetAttr():获取属性,此时将TypeAttr的值换为@+id;
int GetID();获取id;
符号表类CSymTable功能分析:
功能:
属性值:
map<string,Csymbol>
行为动作函数:
AddSymb(TypeAttr,string,string value=""); //向符号表添加符号
CSymbol GetSymb(string) //查询符号
SetSymValue(string,string) //设置符号值
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -