mirror of
https://github.com/mappu/miqt.git
synced 2025-03-11 18:10:22 +00:00
genbindings/clang2il: add some minor function comments
This commit is contained in:
parent
664df77359
commit
d0e28fa69c
@ -8,6 +8,12 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
ErrTooComplex = errors.New("Type declaration is too complex to parse")
|
||||||
|
ErrNoContent = errors.New("There's no content to include")
|
||||||
|
)
|
||||||
|
|
||||||
|
// parseHeader parses a whole C++ header into our CppParsedHeader intermediate format.
|
||||||
func parseHeader(topLevel []interface{}, addNamePrefix string) (*CppParsedHeader, error) {
|
func parseHeader(topLevel []interface{}, addNamePrefix string) (*CppParsedHeader, error) {
|
||||||
|
|
||||||
var ret CppParsedHeader
|
var ret CppParsedHeader
|
||||||
@ -147,6 +153,7 @@ func parseHeader(topLevel []interface{}, addNamePrefix string) (*CppParsedHeader
|
|||||||
return &ret, nil // done
|
return &ret, nil // done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// processTypedef parses a single C++ typedef into our intermediate format.
|
||||||
func processTypedef(node map[string]interface{}, addNamePrefix string) (CppTypedef, error) {
|
func processTypedef(node map[string]interface{}, addNamePrefix string) (CppTypedef, error) {
|
||||||
// Must have a name
|
// Must have a name
|
||||||
nodename, ok := node["name"].(string)
|
nodename, ok := node["name"].(string)
|
||||||
@ -166,6 +173,7 @@ func processTypedef(node map[string]interface{}, addNamePrefix string) (CppTyped
|
|||||||
return CppTypedef{}, errors.New("processTypedef: ???")
|
return CppTypedef{}, errors.New("processTypedef: ???")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// processClassType parses a single C++ class definition into our intermediate format.
|
||||||
func processClassType(node map[string]interface{}, addNamePrefix string) (CppClass, error) {
|
func processClassType(node map[string]interface{}, addNamePrefix string) (CppClass, error) {
|
||||||
var ret CppClass
|
var ret CppClass
|
||||||
ret.CanDelete = true
|
ret.CanDelete = true
|
||||||
@ -476,11 +484,7 @@ func isExplicitlyDeleted(node map[string]interface{}) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
// processEnum parses a Clang enum into our CppEnum intermediate format.
|
||||||
ErrTooComplex = errors.New("Type declaration is too complex to parse")
|
|
||||||
ErrNoContent = errors.New("There's no content to include")
|
|
||||||
)
|
|
||||||
|
|
||||||
func processEnum(node map[string]interface{}, addNamePrefix string) (CppEnum, error) {
|
func processEnum(node map[string]interface{}, addNamePrefix string) (CppEnum, error) {
|
||||||
var ret CppEnum
|
var ret CppEnum
|
||||||
|
|
||||||
@ -592,6 +596,7 @@ func processEnum(node map[string]interface{}, addNamePrefix string) (CppEnum, er
|
|||||||
return ret, nil
|
return ret, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parseMethod parses a Clang method into our CppMethod intermediate format.
|
||||||
func parseMethod(node map[string]interface{}, mm *CppMethod) error {
|
func parseMethod(node map[string]interface{}, mm *CppMethod) error {
|
||||||
|
|
||||||
if typobj, ok := node["type"].(map[string]interface{}); ok {
|
if typobj, ok := node["type"].(map[string]interface{}); ok {
|
||||||
@ -739,6 +744,10 @@ func parseTypeString(typeString string) (CppParameter, []CppParameter, bool, err
|
|||||||
return returnType, ret, isConst, nil
|
return returnType, ret, isConst, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tokenizeMultipleParameters is like strings.Split by comma, except it does not
|
||||||
|
// split if a comma is used for an interior template type e.g. QMap<K,V>.
|
||||||
|
// It is expected to be used with a Clang type representing a function's parameter
|
||||||
|
// list.
|
||||||
func tokenizeMultipleParameters(p string) []string {
|
func tokenizeMultipleParameters(p string) []string {
|
||||||
// Tokenize into top-level strings
|
// Tokenize into top-level strings
|
||||||
templateDepth := 0
|
templateDepth := 0
|
||||||
@ -764,6 +773,8 @@ func tokenizeMultipleParameters(p string) []string {
|
|||||||
return tokens
|
return tokens
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tokenizeSingleParameter tokenizes a Clang qualType into separate tokens.
|
||||||
|
// Interior templates or brackets are tokenized together as a single token.
|
||||||
func tokenizeSingleParameter(p string) []string {
|
func tokenizeSingleParameter(p string) []string {
|
||||||
// Tokenize into top-level strings
|
// Tokenize into top-level strings
|
||||||
templateDepth := 0
|
templateDepth := 0
|
||||||
@ -799,6 +810,9 @@ func tokenizeSingleParameter(p string) []string {
|
|||||||
|
|
||||||
return tokens
|
return tokens
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parseSingleTypeString parses the Clang qualType for a single type into our
|
||||||
|
// CppParameter intermediate format.
|
||||||
func parseSingleTypeString(p string) CppParameter {
|
func parseSingleTypeString(p string) CppParameter {
|
||||||
|
|
||||||
isSigned := false
|
isSigned := false
|
||||||
|
Loading…
x
Reference in New Issue
Block a user