basic for loop + examples -> era3
This commit is contained in:
parent
dd7af341a3
commit
0bc8b2ef55
24 changed files with 222 additions and 201 deletions
|
|
@ -34,6 +34,7 @@ const (
|
|||
BlockNodeType
|
||||
ConditionalNodeType
|
||||
LoopNodeType
|
||||
ForNodeType
|
||||
AssignNodeType
|
||||
InvokeNodeType
|
||||
CallNodeType
|
||||
|
|
@ -501,7 +502,7 @@ func (n ConditionalNode) Bounds() (Pos, Pos) {
|
|||
return n.start, n.end
|
||||
}
|
||||
|
||||
// LoopNode Loops (for/while)
|
||||
// LoopNode While loops
|
||||
type LoopNode struct {
|
||||
condition Node
|
||||
do Node
|
||||
|
|
@ -522,6 +523,28 @@ func (n LoopNode) Bounds() (Pos, Pos) {
|
|||
return n.start, n.end
|
||||
}
|
||||
|
||||
// ForNode For loops
|
||||
type ForNode struct {
|
||||
counter Node
|
||||
iterator Node
|
||||
logic Node
|
||||
|
||||
start Pos
|
||||
end Pos
|
||||
}
|
||||
|
||||
func (n ForNode) Type() NodeType {
|
||||
return ForNodeType
|
||||
}
|
||||
|
||||
func (n ForNode) String() string {
|
||||
return fmt.Sprintf("for %s in %s; %s", n.counter, n.iterator, n.logic)
|
||||
}
|
||||
|
||||
func (n ForNode) Bounds() (Pos, Pos) {
|
||||
return n.start, n.end
|
||||
}
|
||||
|
||||
// AssignNode assignment
|
||||
type AssignNode struct {
|
||||
dest Node
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue