Mercurial > yakumo_izuru > aya
diff vendor/github.com/yosssi/gcss/element.go @ 66:787b5ee0289d draft
Use vendored modules
Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author | yakumo.izuru |
---|---|
date | Sun, 23 Jul 2023 13:18:53 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/github.com/yosssi/gcss/element.go Sun Jul 23 13:18:53 2023 +0000 @@ -0,0 +1,41 @@ +package gcss + +import "io" + +// element represents an element of GCSS source codes. +type element interface { + io.WriterTo + AppendChild(child element) + Base() *elementBase + SetContext(*context) + Context() *context +} + +// newElement creates and returns an element. +func newElement(ln *line, parent element) (element, error) { + var e element + var err error + + switch { + case ln.isComment(): + e = newComment(ln, parent) + case ln.isAtRule(): + e = newAtRule(ln, parent) + case ln.isMixinDeclaration(): + // error can be ignored becuase the line is checked beforehand + // by calling `ln.isMixinDeclaration()`. + e, _ = newMixinDeclaration(ln, parent) + case ln.isMixinInvocation(): + // error can be ignored becuase the line is checked beforehand + // by calling `ln.isMixinInvocation()`. + e, _ = newMixinInvocation(ln, parent) + case ln.isVariable(): + e, err = newVariable(ln, parent) + case ln.isDeclaration(): + e, err = newDeclaration(ln, parent) + default: + e, err = newSelector(ln, parent) + } + + return e, err +}