ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/aya/vendor/github.com/yosssi/gcss/element.go
Revision: 1.1
Committed: Mon Sep 30 00:42:06 2024 UTC (6 weeks, 4 days ago) by yakumo_izuru
Branch: MAIN
CVS Tags: HEAD
Log Message:
Mirrored from https://git.chaotic.ninja/git/yakumo_izuru/aya

File Contents

# User Rev Content
1 yakumo_izuru 1.1 package gcss
2    
3     import "io"
4    
5     // element represents an element of GCSS source codes.
6     type element interface {
7     io.WriterTo
8     AppendChild(child element)
9     Base() *elementBase
10     SetContext(*context)
11     Context() *context
12     }
13    
14     // newElement creates and returns an element.
15     func newElement(ln *line, parent element) (element, error) {
16     var e element
17     var err error
18    
19     switch {
20     case ln.isComment():
21     e = newComment(ln, parent)
22     case ln.isAtRule():
23     e = newAtRule(ln, parent)
24     case ln.isMixinDeclaration():
25     // error can be ignored becuase the line is checked beforehand
26     // by calling `ln.isMixinDeclaration()`.
27     e, _ = newMixinDeclaration(ln, parent)
28     case ln.isMixinInvocation():
29     // error can be ignored becuase the line is checked beforehand
30     // by calling `ln.isMixinInvocation()`.
31     e, _ = newMixinInvocation(ln, parent)
32     case ln.isVariable():
33     e, err = newVariable(ln, parent)
34     case ln.isDeclaration():
35     e, err = newDeclaration(ln, parent)
36     default:
37     e, err = newSelector(ln, parent)
38     }
39    
40     return e, err
41     }