package statements type IStatement interface { } type RawStatement struct { IStatement Value string } type QuotedValue struct { IStatement RawStatement *RawStatement Quote string } type BracketedValue struct { IStatement RawStatement *RawStatement Brackets string } type AmountStatement struct { IStatement Value float64 Unit string } type ProductStatement struct { IStatement Name string } type IActionStatement interface { } type OrderStatement struct { IStatement IActionStatement Action string } func ( this *OrderStatement ) For( stmt IStatement ) { } func ( this *OrderStatement ) Product( stmt IStatement ) { }