package ast import ( "bytes" "code.osinet.fr/fgm/waiig15/token" ) // ExpressionStatement fulfills the Node and Statement interfaces. // It represents a prefixed expression like: // "-5;" type PrefixExpression struct { Token token.Token Operator string Right Expression } // String satisfies the Node and fmt.Stringer interfaces. func (pe *PrefixExpression) String() string { var out bytes.Buffer out.WriteString("(") out.WriteString(pe.Operator) out.WriteString(pe.Right.String()) out.WriteString(")") return out.String() } func (pe *PrefixExpression) expressionNode() {} // TokenLiteral satisfies the Node interface. func (pe *PrefixExpression) TokenLiteral() string { return pe.Token.Literal }