Created basic data structures for analyzer
This commit is contained in:
parent
7f42ccac48
commit
f6aeae1d55
6
analyzer/analyzer.go
Normal file
6
analyzer/analyzer.go
Normal file
@ -0,0 +1,6 @@
|
||||
package analyzer
|
||||
|
||||
// AnalysisOperation holds information about an ongoing analysis operation.
|
||||
type AnalysisOperation struct {
|
||||
sectionTable SectionTable
|
||||
}
|
29
analyzer/table.go
Normal file
29
analyzer/table.go
Normal file
@ -0,0 +1,29 @@
|
||||
package analyzer
|
||||
|
||||
// locator uniquely identifies a section in the section table.
|
||||
type locator struct {
|
||||
modulePath string
|
||||
name string
|
||||
}
|
||||
|
||||
// SectionTable stores a list of semantically analized sections from one module,
|
||||
// and all sections that it requires from other modules.
|
||||
type SectionTable map[locator] Section
|
||||
|
||||
// SectionKind differentiates Section interfaces.
|
||||
type SectionKind int
|
||||
|
||||
const (
|
||||
SectionKindType = iota
|
||||
SectionKindObjt
|
||||
SectionKindEnum
|
||||
SectionKindFace
|
||||
SectionKindData
|
||||
SectionKindFunc
|
||||
)
|
||||
|
||||
// Section is a semantically analyzed section.
|
||||
type Section interface {
|
||||
Kind () (kind SectionKind)
|
||||
Name () (name string)
|
||||
}
|
Reference in New Issue
Block a user