diff --git a/internal/shader/block.go b/internal/shader/block.go deleted file mode 100644 index 99263faaf..000000000 --- a/internal/shader/block.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2020 The Ebiten Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package shader - -import ( - "go/ast" - "go/token" -) - -type block struct { - types []typ - vars []variable - consts []constant - funcs []function - stmts []stmt - pos token.Pos - outer *block -} - -type stmtType int - -const ( - stmtNone stmtType = iota - stmtAssign - stmtBlock - stmtReturn -) - -type stmt struct { - stmtType stmtType - exprs []ast.Expr - block *block -} diff --git a/internal/shader/shader.go b/internal/shader/shader.go index e8162b5f9..68fdf53c1 100644 --- a/internal/shader/shader.go +++ b/internal/shader/shader.go @@ -37,10 +37,12 @@ type constant struct { } type function struct { - name string - args []variable - rets []variable - body *block + name string + args []variable + rets []variable + block *block + + ir shaderir.Func } type compileState struct { @@ -56,6 +58,15 @@ type compileState struct { errs []string } +type block struct { + types []typ + vars []variable + consts []constant + funcs []function + pos token.Pos + outer *block +} + type ParseError struct { errs []string } @@ -232,7 +243,7 @@ func (cs *compileState) parseFunc(d *ast.FuncDecl, block *block) function { name: d.Name.Name, args: args, rets: rets, - body: cs.parseBlock(block, d.Body), + //body: cs.parseBlock(block, d.Body), } } @@ -255,26 +266,26 @@ func (cs *compileState) parseBlock(outer *block, b *ast.BlockStmt) *block { } block.vars = append(block.vars, v) } - for i := range l.Rhs { - block.stmts = append(block.stmts, stmt{ + for range l.Rhs { + /*block.stmts = append(block.stmts, stmt{ stmtType: stmtAssign, exprs: []ast.Expr{l.Lhs[i], l.Rhs[i]}, - }) + })*/ } case token.ASSIGN: // TODO: What about the statement `a,b = b,a?` - for i := range l.Rhs { - block.stmts = append(block.stmts, stmt{ + for range l.Rhs { + /*block.stmts = append(block.stmts, stmt{ stmtType: stmtAssign, exprs: []ast.Expr{l.Lhs[i], l.Rhs[i]}, - }) + })*/ } } case *ast.BlockStmt: - block.stmts = append(block.stmts, stmt{ + /*block.stmts = append(block.stmts, stmt{ stmtType: stmtBlock, block: cs.parseBlock(block, l), - }) + })*/ case *ast.DeclStmt: cs.parseDecl(block, l.Decl, false) case *ast.ReturnStmt: @@ -282,10 +293,10 @@ func (cs *compileState) parseBlock(outer *block, b *ast.BlockStmt) *block { for _, r := range l.Results { exprs = append(exprs, r) } - block.stmts = append(block.stmts, stmt{ + /*block.stmts = append(block.stmts, stmt{ stmtType: stmtReturn, exprs: exprs, - }) + })*/ } }