expression.go 565 B

12345678910111213141516171819202122232425
  1. package ini
  2. // newExpression will return an expression AST.
  3. // Expr represents an expression
  4. //
  5. // grammar:
  6. // expr -> string | number
  7. func newExpression(tok Token) AST {
  8. return newASTWithRootToken(ASTKindExpr, tok)
  9. }
  10. func newEqualExpr(left AST, tok Token) AST {
  11. return newASTWithRootToken(ASTKindEqualExpr, tok, left)
  12. }
  13. // EqualExprKey will return a LHS value in the equal expr
  14. func EqualExprKey(ast AST) string {
  15. children := ast.GetChildren()
  16. if len(children) == 0 || ast.Kind != ASTKindEqualExpr {
  17. return ""
  18. }
  19. return string(children[0].Root.Raw())
  20. }