コード例 #1
0
ファイル: parseFlowDsl.go プロジェクト: flowdev/gflowparser
func NewParseVersion() *ParseVersion {
	f := &ParseVersion{}
	f.version = gparselib.NewParseAll(parseData, setParseData)
	//	f.semantic = NewSemanticCreateVersion()
	f.spcComm = NewParseSpaceComment()
	f.vers = gparselib.NewParseLiteral(parseData, setParseData, "version")
	f.aspc = gparselib.NewParseSpace(parseData, setParseData, false)
	f.political = gparselib.NewParseNatural(parseData, setParseData, 10)
	f.dot = gparselib.NewParseLiteral(parseData, setParseData, ".")
	f.major = gparselib.NewParseNatural(parseData, setParseData, 10)

	//	f.version.SetSemOutPort(f.semantic.InPort)
	//	f.semantic.SetOutPort(f.version.SemInPort)
	f.version.AppendSubOutPort(f.spcComm.InPort)
	f.spcComm.SetOutPort(f.version.SubInPort)
	f.version.AppendSubOutPort(f.vers.InPort)
	f.vers.SetOutPort(f.version.SubInPort)
	f.version.AppendSubOutPort(f.aspc.InPort)
	f.aspc.SetOutPort(f.version.SubInPort)
	f.version.AppendSubOutPort(f.political.InPort)
	f.political.SetOutPort(f.version.SubInPort)
	f.version.AppendSubOutPort(f.dot.InPort)
	f.dot.SetOutPort(f.version.SubInPort)
	f.version.AppendSubOutPort(f.major.InPort)
	f.major.SetOutPort(f.version.SubInPort)
	f.version.AppendSubOutPort(f.spcComm.InPort)
	f.spcComm.SetOutPort(f.version.SubInPort)

	f.InPort = f.version.InPort

	return f
}
コード例 #2
0
func NewParseArrow() *ParseArrow {
	f := &ParseArrow{}
	f.arrow = gparselib.NewParseAll(parseData, setParseData)
	f.semantic = NewSemanticArrow()
	f.spcCom1 = NewParseSpaceComment()
	f.optType = gparselib.NewParseOptional(parseData, setParseData)
	f.optCall = gparselib.NewParseOptional(parseData, setParseData)
	f.litArr = gparselib.NewParseLiteral(parseData, setParseData, "->")
	f.spcCom2 = NewParseSpaceComment()
	f.typ = gparselib.NewParseAll(parseData, setParseData)
	f.call = gparselib.NewParseRegexp(parseData, setParseData, "[saip]")
	f.openType = gparselib.NewParseLiteral(parseData, setParseData, "[")
	f.spc1 = NewParseOptSpc()
	f.typeName = NewParseBigIdent()
	f.spc2 = NewParseOptSpc()
	f.closeType = gparselib.NewParseLiteral(parseData, setParseData, "]")

	f.arrow.SetSemOutPort(f.semantic.InPort)
	f.semantic.SetOutPort(f.arrow.SemInPort)
	f.arrow.AppendSubOutPort(f.spcCom1.InPort)
	f.spcCom1.SetOutPort(f.arrow.SubInPort)
	f.arrow.AppendSubOutPort(f.optType.InPort)
	f.optType.SetOutPort(f.arrow.SubInPort)
	f.arrow.AppendSubOutPort(f.optCall.InPort)
	f.optCall.SetOutPort(f.arrow.SubInPort)
	f.arrow.AppendSubOutPort(f.litArr.InPort)
	f.litArr.SetOutPort(f.arrow.SubInPort)
	f.arrow.AppendSubOutPort(f.spcCom2.InPort)
	f.spcCom2.SetOutPort(f.arrow.SubInPort)
	f.optType.SetSubOutPort(f.typ.InPort)
	f.typ.SetOutPort(f.optType.SubInPort)
	f.optCall.SetSubOutPort(f.call.InPort)
	f.call.SetOutPort(f.optCall.SubInPort)
	f.typ.AppendSubOutPort(f.openType.InPort)
	f.openType.SetOutPort(f.typ.SubInPort)
	f.typ.AppendSubOutPort(f.spc1.InPort)
	f.spc1.SetOutPort(f.typ.SubInPort)
	f.typ.AppendSubOutPort(f.typeName.InPort)
	f.typeName.SetOutPort(f.typ.SubInPort)
	f.typ.AppendSubOutPort(f.spc2.InPort)
	f.spc2.SetOutPort(f.typ.SubInPort)
	f.typ.AppendSubOutPort(f.closeType.InPort)
	f.closeType.SetOutPort(f.typ.SubInPort)

	f.InPort = f.arrow.InPort
	f.SetOutPort = f.arrow.SetOutPort

	return f
}
コード例 #3
0
func NewParsePort() *ParsePort {
	f := &ParsePort{}
	f.port = gparselib.NewParseAll(parseData, setParseData)
	f.semantic = NewSemanticPort()
	f.portName = NewParseSmallIdent()
	f.optPortNum = gparselib.NewParseOptional(parseData, setParseData)
	f.portNum = gparselib.NewParseAll(parseData, setParseData)
	f.dot = gparselib.NewParseLiteral(parseData, setParseData, ".")
	f.num = gparselib.NewParseNatural(parseData, setParseData, 10)

	f.port.SetSemOutPort(f.semantic.InPort)
	f.semantic.SetOutPort(f.port.SemInPort)
	f.port.AppendSubOutPort(f.portName.InPort)
	f.portName.SetOutPort(f.port.SubInPort)
	f.port.AppendSubOutPort(f.optPortNum.InPort)
	f.optPortNum.SetOutPort(f.port.SubInPort)
	f.optPortNum.SetSubOutPort(f.portNum.InPort)
	f.portNum.SetOutPort(f.optPortNum.SubInPort)
	f.portNum.AppendSubOutPort(f.dot.InPort)
	f.dot.SetOutPort(f.portNum.SubInPort)
	f.portNum.AppendSubOutPort(f.num.InPort)
	f.num.SetOutPort(f.portNum.SubInPort)

	f.InPort = f.port.InPort
	f.SetOutPort = f.port.SetOutPort

	return f
}
コード例 #4
0
func NewParseOperationNameParens() *ParseOperationNameParens {

	f := &ParseOperationNameParens{}
	f.opNameParens = gparselib.NewParseAll(parseData, setParseData)
	f.semantic = NewSemanticOperationNameParens()
	f.optOpName = gparselib.NewParseOptional(parseData, setParseData)
	f.openType = gparselib.NewParseLiteral(parseData, setParseData, "(")
	f.spc1 = NewParseOptSpc()
	f.optOpType = NewParseOptOperationType()
	f.closeType = gparselib.NewParseLiteral(parseData, setParseData, ")")
	f.spc2 = NewParseOptSpc()
	f.opName = gparselib.NewParseAll(parseData, setParseData)
	f.smallIdent = NewParseSmallIdent()
	f.spc3 = NewParseOptSpc()

	f.opNameParens.SetSemOutPort(f.semantic.InPort)
	f.semantic.SetOutPort(f.opNameParens.SemInPort)
	f.opNameParens.AppendSubOutPort(f.optOpName.InPort)
	f.optOpName.SetOutPort(f.opNameParens.SubInPort)
	f.opNameParens.AppendSubOutPort(f.openType.InPort)
	f.openType.SetOutPort(f.opNameParens.SubInPort)
	f.opNameParens.AppendSubOutPort(f.spc1.InPort)
	f.spc1.SetOutPort(f.opNameParens.SubInPort)
	f.opNameParens.AppendSubOutPort(f.optOpType.InPort)
	f.optOpType.SetOutPort(f.opNameParens.SubInPort)
	f.opNameParens.AppendSubOutPort(f.closeType.InPort)
	f.closeType.SetOutPort(f.opNameParens.SubInPort)
	f.opNameParens.AppendSubOutPort(f.spc2.InPort)
	f.spc2.SetOutPort(f.opNameParens.SubInPort)
	f.optOpName.SetSubOutPort(f.opName.InPort)
	f.opName.SetOutPort(f.optOpName.SubInPort)
	f.opName.AppendSubOutPort(f.smallIdent.InPort)
	f.smallIdent.SetOutPort(f.opName.SubInPort)
	f.opName.AppendSubOutPort(f.spc3.InPort)
	f.spc3.SetOutPort(f.opName.SubInPort)

	f.InPort = f.opNameParens.InPort
	f.SetOutPort = f.opNameParens.SetOutPort

	return f
}
コード例 #5
0
ファイル: parseFlowDsl.go プロジェクト: flowdev/gflowparser
func NewParseFlow() *ParseFlow {
	f := &ParseFlow{}
	f.flow = gparselib.NewParseAll(parseData, setParseData)
	//	f.semantic = NewSemanticCreateFlow()
	f.flowLiteral = gparselib.NewParseLiteral(parseData, setParseData, "flow")
	f.aspc = gparselib.NewParseSpace(parseData, setParseData, false)
	f.name = NewParseBigIdent()
	f.spcComm1 = NewParseSpaceComment()
	f.openFlow = gparselib.NewParseLiteral(parseData, setParseData, "{")
	f.spcComm2 = NewParseSpaceComment()
	f.connections = NewParseConnections()
	f.closeFlow = gparselib.NewParseLiteral(parseData, setParseData, "}")
	f.spcComm3 = NewParseSpaceComment()

	//	f.flow.SetSemOutPort(f.semantic.InPort)
	//	f.semantic.SetOutPort(f.flow.SemInPort)
	f.flow.AppendSubOutPort(f.flowLiteral.InPort)
	f.flowLiteral.SetOutPort(f.flow.SubInPort)
	f.flow.AppendSubOutPort(f.aspc.InPort)
	f.aspc.SetOutPort(f.flow.SubInPort)
	f.flow.AppendSubOutPort(f.name.InPort)
	f.name.SetOutPort(f.flow.SubInPort)
	f.flow.AppendSubOutPort(f.spcComm1.InPort)
	f.spcComm1.SetOutPort(f.flow.SubInPort)
	f.flow.AppendSubOutPort(f.openFlow.InPort)
	f.openFlow.SetOutPort(f.flow.SubInPort)
	f.flow.AppendSubOutPort(f.spcComm2.InPort)
	f.spcComm2.SetOutPort(f.flow.SubInPort)
	f.flow.AppendSubOutPort(f.connections.InPort)
	f.connections.SetOutPort(f.flow.SubInPort)
	f.flow.AppendSubOutPort(f.closeFlow.InPort)
	f.closeFlow.SetOutPort(f.flow.SubInPort)
	f.flow.AppendSubOutPort(f.spcComm3.InPort)
	f.spcComm3.SetOutPort(f.flow.SubInPort)

	f.InPort = f.flow.InPort

	return f
}
コード例 #6
0
ファイル: parseUtils.go プロジェクト: flowdev/gflowparser
func NewParseStatementEnd() *ParseStatementEnd {
	f := &ParseStatementEnd{}
	f.stmtEnd = gparselib.NewParseAll(parseData, setParseData)
	f.semantic = NewTextSemantic()
	f.optSpc1 = NewParseSpaceComment()
	f.parseLiteral = gparselib.NewParseLiteral(parseData, setParseData, ";")
	f.optSpc2 = NewParseSpaceComment()

	f.stmtEnd.SetSemOutPort(f.semantic.InPort)
	f.semantic.SetOutPort(f.stmtEnd.SemInPort)
	f.stmtEnd.AppendSubOutPort(f.optSpc1.InPort)
	f.optSpc1.SetOutPort(f.stmtEnd.SubInPort)
	f.stmtEnd.AppendSubOutPort(f.parseLiteral.InPort)
	f.parseLiteral.SetOutPort(f.stmtEnd.SubInPort)
	f.stmtEnd.AppendSubOutPort(f.optSpc2.InPort)
	f.optSpc2.SetOutPort(f.stmtEnd.SubInPort)

	f.InPort = f.stmtEnd.InPort
	f.SetOutPort = f.stmtEnd.SetOutPort

	return f
}