Confusion regarding LiteralExprAst class in AST.h in toy tutorial chap 1

In the file AST.h in toy tutorial chapter - 1, the class LiteralExprAST is defined as follows:

/// Expression class for a literal value.
class LiteralExprAST : public ExprAST {
  std::vector<std::unique_ptr<ExprAST>> values;
  std::vector<int64_t> dims;

  LiteralExprAST(Location loc, std::vector<std::unique_ptr<ExprAST>> values,
                 std::vector<int64_t> dims)
      : ExprAST(Expr_Literal, std::move(loc)), values(std::move(values)),
        dims(std::move(dims)) {}

  llvm::ArrayRef<std::unique_ptr<ExprAST>> getValues() { return values; }
  llvm::ArrayRef<int64_t> getDims() { return dims; }

  /// LLVM style RTTI
  static bool classof(const ExprAST *c) { return c->getKind() == Expr_Literal; }

I couldn’t understand what is ‘values’ and ‘dims’ in this class? Can anyone please give an example of how values and dims will be extracted from a literal expression in the source code?


Here is an exmaple that hopefully clarifies what these are: llvm-project/AST.cpp at a583616918ec2984092c99363f200dd31642859a · llvm/llvm-project · GitHub