expression.go 686 B

1234567891011121314151617181920212223242526272829
  1. package ast
  2. import (
  3. "code.osinet.fr/fgm/waiig15/token"
  4. )
  5. // ExpressionStatement fulfills the Node and Statement interfaces.
  6. // It represents a statement made of a bare expression like:
  7. // x + 10;
  8. type ExpressionStatement struct {
  9. Token token.Token // the first token of the expression
  10. Expression Expression
  11. }
  12. // String satisfies the Node and fmt.Stringer interfaces.
  13. func (es *ExpressionStatement) String() string {
  14. if es.Expression != nil {
  15. return es.Expression.String()
  16. }
  17. return ""
  18. }
  19. func (es *ExpressionStatement) statementNode() {}
  20. // TokenLiteral satisfies the Node interface.
  21. func (es *ExpressionStatement) TokenLiteral() string {
  22. return es.Token.Literal
  23. }