本文整理汇总了C++中Symbol_table::set_value方法的典型用法代码示例。如果您正苦于以下问题:C++ Symbol_table::set_value方法的具体用法?C++ Symbol_table::set_value怎么用?C++ Symbol_table::set_value使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symbol_table
的用法示例。
在下文中一共展示了Symbol_table::set_value方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: primary
double primary(){
Token t = ts.get();
switch(t.kind){
case '(': // '(' Expression ')'を処理する
{
double d = expression();
t = ts.get();
if(t.kind != ')') error("')' expected");
return d;
}
case number: // 数字を表す
return t.value; // 数字の値を返す
case name:
{
Token t2 = ts.get();
if(t2.kind == '='){ // 変数に値を代入
double d = expression();
st.set_value(t.name, d);
return d;
}
else{
ts.putback(t2);
return st.get_value(t.name); // 変数の値を返す
}
}
case '-':
return -primary();
case '+':
return primary();
default:
error("primary expected");
}
}
示例2: declaration
double declaration()
{
Token t = ts.get();
if (t.kind != VAR) {
ts.end();
error ("Valid name expected in declaration");
}
string name = t.name;
Token t2 = ts.get();
if (t2.kind != '=') {
ts.end();
error("'=' missing in declaration of " ,name);
}
double d = expression();
variables.set_value(name, d);
return d;
}
示例3: primary
double primary() // Processes semicolons, numbers and returns variables
{
Token t = ts.get(); // Get a character
switch (t.kind) {
case '(':
{ double d = expression(); // Perform calculations in semicolons
t = ts.get(); // Get a ')' closing character
if (t.kind != ')') error("')' expected"); // If there wasn't any ')' return an error
return d;
}
case sqrts: // Calculate square root of number or group of numbers
{
return squareroot();
}
case pows:
{
return pow();
}
case '-': // For negative digits
return - primary(); // Return negative digit
case number: // If Token is a number
if(narrow_cast<int>(t.value)) return t.value; // Return the number
case name: // If Token is a name of variable
{
string s = t.name; // Save name of variable
t = ts.get();
if (t.kind == assign) names.set_value(s,expression()); // If there is an assignment symbol then update the value of variable
else ts.unget(t);
return names.get_value(s); // Return the value of the variable
}
case help:
return primary();
default:
error("primary expected"); // Return an error if an inappropriate character was provided
}
}