示例#1
0
        public void Visit(GMacConstant constant)
        {
            var node = new TreeNode(constant.SymbolAccessName)
            {
                Tag = constant
            };

            RoleNodes[ConstantsNode].Nodes.Add(node);
        }
示例#2
0
        public void Visit(GMacConstant constant)
        {
            Log.AppendAtNewLine("constant ");
            Log.Append(constant.SymbolAccessName);
            Log.Append(" = ");

            constant.AssociatedValue.AcceptVisitor(this);

            Log.AppendLineAtNewLine();
        }
        public TreeNode Visit(GMacConstant constant)
        {
            var node = new TreeNode("<CONSTANT> " + constant.ObjectName)
            {
                Tag = constant
            };

            node.Nodes.Add(constant.AssociatedValue.AcceptVisitor(this));

            return(node);
        }
示例#4
0
        private void translate_Constant()
        {
            try
            {
                Context.MarkCheckPointState();

                string          childSymbolName;
                SymbolWithScope parentSymbol;

                Translate_ParentSymbolAndChildSymbolName(RootParseNode.ChildNodes[0], out parentSymbol, out childSymbolName);

                var nameSpace = parentSymbol as GMacNamespace;

                if (nameSpace != null)
                {
                    _generatedConstant = Create_Namespace_Constant(nameSpace, childSymbolName);
                }

                else
                {
                    var frame = parentSymbol as GMacFrame;

                    if (frame != null)
                    {
                        _generatedConstant = Create_Frame_Constant(frame, childSymbolName);
                    }

                    else
                    {
                        CompilationLog.RaiseGeneratorError <int>("Expecting a Frame or Namespace scope", RootParseNode.ChildNodes[0]);
                    }
                }

                _generatedConstant.CodeLocation = Context.GetCodeLocation(RootParseNode);

                Context.UnmarkCheckPointState();
                Context.CompilationLog.ReportNormal("Translated Constant: " + _generatedConstant.SymbolAccessName, ProgressEventArgsResult.Success);
            }
            catch (CompilerException)
            {
                Context.RestoreToCheckPointState();
                Context.CompilationLog.ReportNormal("Translate Constant", ProgressEventArgsResult.Failure);
            }
            catch (Exception e)
            {
                Context.RestoreToCheckPointState();
                Context.CompilationLog.ReportError("Translate Constant Failed With Error", e);
            }
        }
示例#5
0
 internal static AstConstant ToAstConstant(this GMacConstant constant)
 {
     return(new AstConstant(constant));
 }
示例#6
0
 internal AstConstant(GMacConstant constant)
 {
     AssociatedConstant = constant;
 }