本文整理匯總了Golang中github.com/Dwarfartisan/goparsec/parsex.ParsexState類的典型用法代碼示例。如果您正苦於以下問題:Golang ParsexState類的具體用法?Golang ParsexState怎麽用?Golang ParsexState使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了ParsexState類的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: NumberValue
// NumberValue 將所有整型和浮點型處理為 Float ,其它類型不接受
func NumberValue(st px.ParsexState) (interface{}, error) {
v, err := st.Next(px.Always)
if err != nil {
return nil, err
}
switch val := v.(type) {
case int:
return Float(val), nil
case int8:
return Float(val), nil
case int16:
return Float(val), nil
case int32:
return Float(val), nil
case int64:
return Float(val), nil
case Int:
return Float(val), nil
case float32:
return Float(val), nil
case float64:
return Float(val), nil
case Float:
return val, nil
default:
return nil, NotNumberError{v}
}
}
示例2: IntVal
// IntVal 嘗試將 state 中的下一個數據解為 int
func IntVal(st px.ParsexState) (interface{}, error) {
x, err := st.Next(px.Always)
if err != nil {
return nil, err
}
if _, ok := x.(Int); ok {
return x, nil
}
return nil, fmt.Errorf("except a Int value but got %v", x)
}
示例3: neqsOption
// not equals function, NotEqual or !=, if anyone is nil, return false
func neqsOption(st px.ParsexState) (interface{}, error) {
x, err := st.Next(px.Always)
if err != nil {
return nil, err
}
if x == nil {
return false, nil
}
for {
y, err := st.Next(px.Always)
if err != nil {
if reflect.DeepEqual(err, io.EOF) {
return false, nil
}
return nil, err
}
if y == nil {
return false, nil
}
if !reflect.DeepEqual(x, y) {
return true, nil
}
}
}