lazy operand sem'checking (beware)
This commit is contained in:
parent
dc07732daa
commit
eebee0eff2
6 changed files with 88 additions and 43 deletions
|
|
@ -19,13 +19,9 @@ import
|
|||
|
||||
# implementation
|
||||
|
||||
type
|
||||
TExprFlag = enum
|
||||
efLValue, efWantIterator, efInTypeof, efWantStmt, efDetermineType
|
||||
TExprFlags = set[TExprFlag]
|
||||
|
||||
proc semExpr(c: PContext, n: PNode, flags: TExprFlags = {}): PNode
|
||||
proc semExprWithType(c: PContext, n: PNode, flags: TExprFlags = {}): PNode
|
||||
proc semExpr(c: PContext, n: PNode, flags: TExprFlags = {}): PNode {.procvar.}
|
||||
proc semExprWithType(c: PContext, n: PNode, flags: TExprFlags = {}): PNode {.
|
||||
procvar.}
|
||||
proc semExprNoType(c: PContext, n: PNode): PNode
|
||||
proc semExprNoDeref(c: PContext, n: PNode, flags: TExprFlags = {}): PNode
|
||||
proc semProcBody(c: PContext, n: PNode): PNode
|
||||
|
|
@ -200,14 +196,12 @@ proc addCodeForGenerics(c: PContext, n: PNode) =
|
|||
addSon(n, prc.ast)
|
||||
c.lastGenericIdx = c.generics.len
|
||||
|
||||
proc semExprNoFlags(c: PContext, n: PNode): PNode {.procvar.} =
|
||||
result = semExpr(c, n, {})
|
||||
|
||||
proc myOpen(module: PSym): PPassContext =
|
||||
var c = newContext(module)
|
||||
if c.p != nil: InternalError(module.info, "sem.myOpen")
|
||||
c.semConstExpr = semConstExpr
|
||||
c.semExpr = semExprNoFlags
|
||||
c.semExpr = semExpr
|
||||
c.semExprWithType = semExprWithType
|
||||
c.semConstBoolExpr = semConstBoolExpr
|
||||
c.semOverloadedCall = semOverloadedCall
|
||||
c.semTypeNode = semTypeNode
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue