自制编程语言(7)---语法分析---变量声明赋值

本文探讨了在编程中如何实现变量声明后直接赋值的功能,介绍了声明赋值语句的语法样式,如'int a=10;',并详细解析了语法实现过程,包括变量声明语句类的定义及语法分析步骤的调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0.简介

前面有了变量声明,我希望还能支持变量声明后直接赋值的操作。

1.声明赋值

其语法样式如下

int a = 10;

2.语法实现

//变量声明语句
class VariableDeclareStatement : public Statement
{
public:
	VariableDeclareStatement(int _line, int _column) :Statement(_line, _column) {}
	//类型
	Token type;
	//类型名字
	std::string typeName;
	//标识符表达式
	//std::string identName;
	std::shared_ptr<Expression> ident;
	//表达式解析
	virtual operand evaluation(std::vector<Quaternion>& context, Memory& memory, NameTable& table) { return operand(); }
	~VariableDeclareStatement() {}
};

这里将原来的标识符的字符串换成了表达式,表达式可以直接兼容赋值语句。

同时语法分析的步骤也有如下的变化
 

std::shared_ptr<VariableDeclareStatement> Parser::variableDeclare()
{
	...
	result->ident = parseExpression();
	if(typeid(*(result->ident)) != typeid(IdentifierExpression) && typeid(*(result->ident)) != typeid(AssignExpression))
		error(BAD_IDENT,lines.front(),columns.front());
	...
}

3.源码

这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值