Exemple #1
0
/// primary
///   ::= identifierexpr
///   ::= numberexpr
///   ::= parenexpr
static ExprAST *ParsePrimary() {
  switch (CurTok) {
  default: return Error("unknown token when expecting an expression");
  case tok_identifier: return ParseIdentifierExpr();
  case tok_number:     return ParseNumberExpr();
  case '(':            return ParseParenExpr();
  }
}
Exemple #2
0
/// primary
///   ::= identifierexpr
///   ::= numberexpr
///   ::= parenexpr
static ExprAST *ParsePrimary() {
  switch (CurTok) {
  default: return Error("unknown token when expecting an expression");
  case tok_identifier: printf("<identifier, %s>\n", IdentifierStr.c_str()); return ParseIdentifierExpr();
  case tok_number:     printf("<number, %f>\n", NumVal); return ParseNumberExpr();
  case '(':            return ParseParenExpr();
  }
}
Exemple #3
0
ExprAST * FAO::ParsePrimary()
{
	switch (cur_token_.GetType()){
	case TokenType::TOKEN_INTEGER:
		return ParseNumberExpr(); 
	case TokenType::TOKEN_LEFT_PARAM:
		return ParseParentExpr();
	default:
		return Error("unknow token when expecting an expression");
	}
}
Exemple #4
0
/* Handles primary expressions, where
* primary ::= identifierexpr
*         ::= numberexpr
*         ::= parenexpr
* by using look-ahead to see what kind of expression
* we should parse.
*/
static std::unique_ptr<ExprAST> ParsePrimary()
{
    switch(CurTok) {
        default:
            return Error("Expected an expression but got an unknown token.");
        case tok_ident:
            return ParseIdentifierExpr();
        case tok_number:
            return ParseNumberExpr();
        case '(':
            return ParseParenExpr();
    }
}
/* primary
 * ::= identifierexpr
 * ::= numberexpr
 * ::= parenexpr
 * ::= const string
 * */
static shared_ptr<ExprAST> ParsePrimary() {
    switch (CurTok) {
        case T_BRACE_SL:
            return ParseParenExpr();
        case T_IDENTIFIER:
            return ParseIdentifierExpr();
        case T_NUMBER:
            return ParseNumberExpr();
        case T_DQUOTE:
            return ParseConststringExpr();
        case T_SQUOTE:
            return ParseConststringExpr();
        default:
            return Error("unknown token when expected an expression  ");
    }
}
Exemple #6
0
/// primary
///   ::= identifierexpr
///   ::= numberexpr
///   ::= parenexpr
std::unique_ptr<ExprAST> UDFParser::ParsePrimary() {
  switch (cur_tok_) {
    default:
      return LogError("unknown token when expecting an expression");
    case tok_identifier:
      return ParseIdentifierExpr();
    case tok_number:
      return ParseNumberExpr();
    case '(':
      return ParseParenExpr();
    case tok_return:
      return ParseReturn();
    case tok_if:
      return ParseIfExpr();
    case tok_semicolon:
      return nullptr;
  }
}