Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/anonymous structs #13

Merged
merged 11 commits into from
Jun 19, 2021
Merged

Feature/anonymous structs #13

merged 11 commits into from
Jun 19, 2021

Conversation

andreykaipov
Copy link
Owner

No description provided.

pretty hacky; still gotta clean this up
probably should put them into their own packages to avoid the duplicate
struct errors (and in fact I should figure out some way to avoid those
duplicates)
...abstracting common logic in recursive descent parser
i was missing Scene and had the types wrong for a few
now it's much cleaner with fallthroughs
@andreykaipov andreykaipov force-pushed the feature/anonymous-structs branch from 20c9477 to 01be6ee Compare June 19, 2021 03:54
@andreykaipov andreykaipov force-pushed the feature/anonymous-structs branch from 01be6ee to d094af6 Compare June 19, 2021 03:55
Comment on lines +378 to +408
func handleCommonObjects(origin, fieldName string) (string, *keyInfo) {
if !strings.Contains(fieldName, ".") {
return "", nil
}

// key prefix to manually declared struct in typedefs package
lookup := map[string][]string{
"bounds.": {"Bounds", "The bounding box of the object (source, scene item, etc)."},
"crop.": {"Crop", "The crop specification for the object (source, scene item, etc)."},
"position.": {"Position", "The position of the object (source, scene item, etc)."},
"scale.": {"Scale", "The scaling specification for the object (source, scene item, etc)."},
"item.": {"Item", "The item specification for this object."},
"font.": {"Font", "The font specification for this object."},
"settings.": {"Settings", " "},
"stream.settings.": {"Settings", " "},
"items.*.": {"Item", "The items for this object."},
"filters.*.": {"Filter", "The filters for this object."},
}

for k, vs := range lookup {
if strings.HasPrefix(fieldName, k) {
k = strings.TrimSuffix(k, ".")
s := Qual(typedefQualifier(origin), vs[0])
return k, &keyInfo{Type: s, Comment: vs[1]}
}
}

fmt.Printf(" > not handled as a common struct: %s\n", fieldName)

return "", nil
}
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For posterity:

This selection is pretty much the meat of the PR. Here is what's doing the matching and selecting our manually written structs.

@andreykaipov andreykaipov merged commit 762017e into master Jun 19, 2021
@andreykaipov andreykaipov deleted the feature/anonymous-structs branch June 19, 2021 04:31
@andreykaipov
Copy link
Owner Author

Closes #8 👀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant