⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 需求分析.txt

📁 基于ANTLR的简单编译器源码version0.1
💻 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 + -