示例#1
0
    public override void Init(AstContext context, ParseTreeNode parseNode)
		{
			base.Init(context, parseNode);

			foreach (var node in parseNode.ChildNodes)
			{
				if (node.AstNode is Function)
				{
					AddFunction(node.AstNode as Function);
				}
				else if (node.AstNode is AuxiliaryNode)
				{
					var ids = (node.AstNode as AuxiliaryNode).ChildNodes.OfType<IdentifierNode>();

					foreach (var id in ids)
					{
						ExternalFunction ef = new ExternalFunction();
						ef.SetSpan(id.Span);
						ef.Name = id.Symbol;
						AddFunction(ef);
					}
				}
			}

			AsString = "Refal-5 program";
		}
示例#2
0
 public override void VisitExternalFunction(ExternalFunction function)
 {
     // do nothing
 }
示例#3
0
 public override void VisitExternalFunction(ExternalFunction function)
 {
     sb.AppendFormat("$EXTRN {0};\r\n", function.Name);
 }
示例#4
0
 public override void VisitExternalFunction(ExternalFunction function)
 {
     throw new NotImplementedException();
 }
示例#5
0
 public abstract void VisitExternalFunction(ExternalFunction function);
示例#6
0
        public void AddExternalFunction(string name)
        {
            Function fun = new ExternalFunction(name);

            program.AddFunction(fun);
        }