Product -> FinancialInstrument

This commit is contained in:
2022-10-22 04:10:27 +08:00
parent 36faffe882
commit 49043117e2
6 changed files with 28 additions and 24 deletions

View File

@@ -7,14 +7,14 @@ import (
/*
EXPECT: BUY
THEN EXPECT: [AmountStatement] OF [ProductStatement]
THEN EXPECT: [AmountStatement] OF [FinancialInstrumentStatement]
THEN EXPECT: FOR [AmountStatement]
THEN EXPECT: FROM [ExchangeType]
THEN OPT EXPECT: [ExchangeType]
THEN OPT EXPECT: [AND|OR]
THEN EXPECT: [ActionExpression]
THEN OPT EXPECT: FOR EVERY
THEN EXPECT: [AmountType] OF [ProductType]
THEN EXPECT: [AmountType] OF [FinancialInstrumentType]
THEN EXPECT: [SOLD|BOUGHT] FROM [ExchangeType]
*/
@@ -43,19 +43,19 @@ func BuyStatement( lexer *engine.Lexer ) ( istmt stmtd.IStatement, err error ) {
return
}
// ProductStatement
readProduct := engine.LexerExpect{
// FinancialInstrumentStatement
readFI := engine.LexerExpect{
Statements: true,
Keywords: false,
Brackets: false,
Quotes: false,
Key: "PRODUCT",
Key: "FINANCIAL_INSTRUMENT",
}
productStmt, err := lexer.ReadStatement( &readProduct )
productStmt, err := lexer.ReadStatement( &readFI )
if err != nil {
return
}
orderStmt.Product( productStmt )
orderStmt.FinancialInstrument( productStmt )
istmt = orderStmt
return

View File

@@ -12,7 +12,7 @@ func TestBuyStatement( t *testing.T ) {
supportedStmts := map[string] func( *engine.Lexer ) ( stmtd.IStatement, error ) {
"BUY": BuyStatement,
"AMOUNT": AmountStatement,
"PRODUCT": ProductStatement,
"FINANCIAL_INSTRUMENT": FinancialInstrumentStatement,
}
lexer.SupportedStmts = &supportedStmts

View File

@@ -12,8 +12,8 @@ OR
EXPECT: [FUNCTION]( ...params )
*/
func ProductStatement( lexer *engine.Lexer ) ( istmt stmtd.IStatement, err error ) {
stmt := stmtd.ProductStatement{}
func FinancialInstrumentStatement( lexer *engine.Lexer ) ( istmt stmtd.IStatement, err error ) {
stmt := stmtd.FinancialInstrumentStatement{}
name, err := lexer.ReadAlpha()
if err != nil {

View File

@@ -25,7 +25,7 @@ type AmountStatement struct {
Unit string
}
type ProductStatement struct {
type FinancialInstrumentStatement struct {
IStatement
Name string
}
@@ -44,5 +44,5 @@ type OrderStatement struct {
func ( this *OrderStatement ) For( stmt IStatement ) {
}
func ( this *OrderStatement ) Product( stmt IStatement ) {
func ( this *OrderStatement ) FinancialInstrument( stmt IStatement ) {
}