Documentation
¶
Overview ¶
AST: 语法树
FQL子包:用于实现文件查询语言(File Query Language)
Parse: 语法分析
Index ¶
- Constants
- func Exec(query string) (string, error)
- type ActionStatement
- type AliasExpression
- type ConditionExpression
- type ConditionStatement
- type Expression
- type ListExpression
- type ListStatement
- type Node
- type ParameterExpression
- type Parser
- type Statement
- type StringLiteral
- type TargetExpression
- type Token
- type TokenType
Constants ¶
View Source
const ( // ACTION 表示操作类型(如CREATE、DROP、UPDATE等) ACTION TokenType = "ACTION" // FILENAME 表示文件名 FILENAME = "FILENAME" // ALIAS 表示别名或者自定义名称 ALIAS = "ALIAS" // DID 表示分布式身份标识(Decentralized Identifier) DID = "DID" // PARAM 表示参数(如 METADATA, SIZE 等) PARAM = "PARAM" // OPTION 表示选项(用于扩展功能) OPTION = "OPTION" // OPERATOR 表示操作符(如 <, >, =, ... ) OPERATOR = "OPERATOR" // NUMBER 表示数字 NUMBER = "NUMBER" // ASYNC 表示异步操作 ASYNC = "ASYNC" // KEYVALUE 表示键值对(如 "key1:value1" ) KEYVALUE = "KEYVALUE" // LIST 表示列表格式 LIST = "LIST" // DATE 表示日期格式 DATE = "DATE" // CONTENT 表示文件的内容 CONTENT = "CONTENT" // WHERE 表示查询条件 WHERE = "WHERE" // TAGS 表示文件的标签 TAGS = "TAGS" // TRANSFER 表示文件的转移操作 TRANSFER = "TRANSFER" // CO_OWNERS 表示文件的共有者 CO_OWNERS = "CO_OWNERS" // VERSION 表示文件的版本 VERSION = "VERSION" // EXTENSION 表示扩展 EXTENSION = "EXTENSION" // FILES 表示多个文件 FILES = "FILES" // ATTRIBUTE 表示文件属性,如 SIZE, LAST_MODIFIED 等 ATTRIBUTE = "ATTRIBUTE" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ActionStatement ¶
type ActionStatement struct {
Token Token // 操作指令的Token,例如CREATE、DROP等
Name string // 操作指令的名称
Target Expression // 命令的目标,如FILE、FILES、EXTENSION等
Parameters []Expression // 命令的参数列表,如OWNED_BY、METADATA等
Lists []ListExpression // 新增: 命令的LIST列表,如[file1, file2]
Conditions []ConditionExpression // 新增: 命令的条件列表,如SIZE < 5000
}
ActionStatement 代表FQL中的操作指令,例如CREATE、DROP等。
func (*ActionStatement) TokenLiteral ¶
func (as *ActionStatement) TokenLiteral() string
type AliasExpression ¶
AliasExpression 代表FQL中的别名。
func (*AliasExpression) TokenLiteral ¶
func (ae *AliasExpression) TokenLiteral() string
type ConditionExpression ¶
type ConditionExpression struct {
Token Token // 条件的Token
Left Expression // 条件的左侧表达式
Operator string // 条件的操作符,如<、>等
Right Expression // 条件的右侧表达式
Next *ConditionExpression // 附加的条件,用于AND或OR连接的多个条件
}
ConditionExpression 代表一个条件表达式。
func (*ConditionExpression) TokenLiteral ¶
func (ce *ConditionExpression) TokenLiteral() string
type ConditionStatement ¶
type ConditionStatement struct {
Token Token // the 'WHERE' token
Operator Token // the '<' token
Left Token // the 'SIZE' token
Right Token // the '5000' token
}
ConditionStatement 表示一个条件语句,例如SIZE < 5000
func (*ConditionStatement) TokenLiteral ¶
func (cs *ConditionStatement) TokenLiteral() string
type Expression ¶
type Expression interface {
Node
// contains filtered or unexported methods
}
Expression 代表FQL中的表达式。
type ListExpression ¶
type ListExpression struct {
Token Token // 列表的Token
Elements []Expression // 列表中的元素
}
ListExpression 代表一个列表。
func (*ListExpression) TokenLiteral ¶
func (le *ListExpression) TokenLiteral() string
type ListStatement ¶
type ListStatement struct {
Token Token // the '[' token
Values []Token // the elements in the list
}
ListStatement 表示一个列表,例如[file1, file2]
func (*ListStatement) TokenLiteral ¶
func (ls *ListStatement) TokenLiteral() string
type ParameterExpression ¶
type ParameterExpression struct {
Token Token // 参数的Token
Key string // 参数的键,如OWNED_BY、METADATA
Value Expression // 参数的值,可以是StringLiteral, ListExpression, ConditionExpression等
}
ParameterExpression 代表FQL中的参数。
func (*ParameterExpression) TokenLiteral ¶
func (pe *ParameterExpression) TokenLiteral() string
type Statement ¶
type Statement interface {
Node
// contains filtered or unexported methods
}
Statement 代表FQL中的语句。例如“CREATE FILE...”或“DROP FILE...”。
type StringLiteral ¶
StringLiteral 代表字符串字面值。
func (*StringLiteral) TokenLiteral ¶
func (sl *StringLiteral) TokenLiteral() string
type TargetExpression ¶
TargetExpression 代表命令的目标,例如FILE、FILES等。
func (*TargetExpression) TokenLiteral ¶
func (te *TargetExpression) TokenLiteral() string
Click to show internal directories.
Click to hide internal directories.