calcparser.h

来自「用于词法分析的词法分析器」· C头文件 代码 · 共 57 行

H
57
字号
/*  $Id: CalcParser.h,v 1.1 1997/02/23 13:29:28 matt Exp $  CalcParser class.  Implements a simple calculator parser and  evaluator.    (c) Matt Phillips, 1997.  *//*  Calculator grammar  ------------------  <expr>   ::= <term>   ( ['+' '-']       <term>   )*  <term>   ::= <factor> ( ['/' '*' 'mod'] <factor> )*  <factor> ::= number  <factor> ::= '(' <expr> ')'  <factor> ::= variable*/#ifndef _CalcParser_h#define _CalcParser_h#include <iostream.h>#include "CalcScanner.h"class CalcParser{public:  CalcParser (istream &input_);  // Returns the result of the expression.  double getResult () const {return result;}  // Returns true if expression parsed OK.  int ok () const {return scanner.getErrors ().nItems () == 0;}  // Returns a list of errors found during parsing.  const ErrorMessageList &getErrors () const {return scanner.getErrors ();}protected:  XInputStream input;  CalcScanner scanner;  double result;  double parseExpr ();  double parseTerm ();  double parseFactor ();  double getVariableValue (const string &variable);  double getNumberValue (const string &number);};#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?