コード例 #1
0
 public void GetUsedIdents(ScopeChecker.UsedIdents usedIdents)
 {
     if (FlowMode != null && (FlowMode.Value == Compiler.FlowMode.IN || FlowMode.Value == Compiler.FlowMode.INOUT))
     {
         usedIdents.AddStoIdent(Ident, true); //In params are initialized
     }
 }
コード例 #2
0
        public void GetUsedIdents(ScopeChecker.UsedIdents usedIdents)
        {
            string tmp = usedIdents.CurrentNamespace;

            usedIdents.CurrentNamespace = null;
            usedIdents.AddStoIdent(Ident, false); //TODO: init!
            usedIdents.CurrentNamespace = tmp;
        }
コード例 #3
0
ファイル: ASTWhile.cs プロジェクト: TheJP/cpib
        public override void GetUsedIdents(ScopeChecker.UsedIdents usedIdents)
        {
            bool tmp = usedIdents.AllowInit;

            usedIdents.AllowInit = false;
            Condition.GetUsedIdents(usedIdents);
            Commands.ForEach(cmd => cmd.GetUsedIdents(usedIdents));
            usedIdents.AllowInit = tmp;
        }
コード例 #4
0
ファイル: ASTIdent.cs プロジェクト: TheJP/cpib
 public override void GetUsedIdents(ScopeChecker.UsedIdents usedIdents)
 {
     if (IsFuncCall)
     {
         usedIdents.AddProcFuncIdent(Ident);
     }
     else
     {
         usedIdents.AddStoIdent(Ident, IsInit);
     }
 }
コード例 #5
0
        public override void GetUsedIdents(ScopeChecker.UsedIdents usedIdents)
        {
            Condition.GetUsedIdents(usedIdents);
            //Fork usedIdents
            var usedIdentsFork = usedIdents.ForkForIf();

            //Give the branches its own UsedIdents instance
            TrueCommands.ForEach(cmd => cmd.GetUsedIdents(usedIdents));
            FalseCommands.ForEach(cmd => cmd.GetUsedIdents(usedIdentsFork));
            //Merge the branches again
            usedIdents.MergeForIf(usedIdentsFork);
        }
コード例 #6
0
ファイル: ASTProgram.cs プロジェクト: TheJP/cpib
 public void GetUsedIdents(ScopeChecker.UsedIdents usedIdents)
 {
     usedIdents.CurrentNamespace = null;
     Params.ForEach(param => param.GetUsedIdents(usedIdents));
     Commands.ForEach(cmd => cmd.GetUsedIdents(usedIdents));
     Declarations.ForEach(decl =>
     {
         if (decl is ASTProcFuncDecl)
         {
             usedIdents.CurrentNamespace = ((ASTProcFuncDecl)decl).Ident;
         }
         decl.GetUsedIdents(usedIdents);
         usedIdents.CurrentNamespace = null;
     });
 }
コード例 #7
0
 public abstract void GetUsedIdents(ScopeChecker.UsedIdents usedIdents);
コード例 #8
0
ファイル: ASTOptInit.cs プロジェクト: TheJP/cpib
 public void GetUsedIdents(ScopeChecker.UsedIdents usedIdents)
 {
 }
コード例 #9
0
ファイル: ASTType.cs プロジェクト: TheJP/cpib
 public override void GetUsedIdents(ScopeChecker.UsedIdents usedIdents)
 {
     Expr.GetUsedIdents(usedIdents);
 }
コード例 #10
0
ファイル: ASTProcFuncDecl.cs プロジェクト: TheJP/cpib
 public override void GetUsedIdents(ScopeChecker.UsedIdents usedIdents)
 {
     Params.ForEach(param => param.GetUsedIdents(usedIdents));
     OptGlobImps.ForEach(global => global.GetUsedIdents(usedIdents));
     Commands.ForEach(cmd => cmd.GetUsedIdents(usedIdents));
 }
コード例 #11
0
 public override void GetUsedIdents(ScopeChecker.UsedIdents usedIdents)
 {
     ExprList.ForEach(cmd => cmd.GetUsedIdents(usedIdents));
     usedIdents.AddProcFuncIdent(Ident);
 }