コード例 #1
0
		override protected void EngineExecuteGuiCode(ZeusCodeSegment segment, ZeusGuiContext context)
		{
			try 
			{
				this.Cleanup();
				this._codeSegment = segment;

				this._currentObject = InstantiateClass( this.CurrentAssembly, typeof(_DotNetScriptGui), context );

				if (this._currentObject is _DotNetScriptGui)
				{
					this._interfaceObject = this._currentObject as _DotNetScriptGui;
					this._interfaceObject.Setup();
				}
				
				if (context.Gui.ShowGui)
				{
					OnShowGUI(context.Gui);
					if (!context.Gui.IsCanceled) 
					{
						context.Input.AddItems(context.Gui);
					}
				}

			}
			catch (ZeusCompilerException ex)
			{
				ex.IsTemplateScript = false;
				throw ex;
			}
		}
コード例 #2
0
        public string ParseCustomTag(ZeusCodeSegment segment, string text)
        {
            ArrayList extraData   = segment.ExtraData;
            string    data        = null;
            string    returnValue = string.Empty;

            if (text.StartsWith(INCLUDE_FILE))
            {
                data        = text.Substring(INCLUDE_FILE.Length).Trim();
                returnValue = this.IncludeFile(segment.Template.FilePath + data);
            }
            else if (text.StartsWith(INCLUDE_REFERENCE))
            {
                data = text.Substring(INCLUDE_REFERENCE.Length).Trim();
                this.IncludeReference(data, extraData);
            }
            else if (text.StartsWith(INCLUDE_REFERENCE_ALT))
            {
                data = text.Substring(INCLUDE_REFERENCE_ALT.Length).Trim();
                this.IncludeReference(data, extraData);
            }
            else if (text.StartsWith(INCLUDE_NAMESPACE))
            {
                data = text.Substring(INCLUDE_NAMESPACE.Length).Trim();
                this.IncludeNamespace(data, extraData);
            }
            else if (text.StartsWith(INCLUDE_NAMESPACE_ALT))
            {
                data = text.Substring(INCLUDE_NAMESPACE_ALT.Length).Trim();
                this.IncludeNamespace(data, extraData);
            }

            return(returnValue);
        }
コード例 #3
0
        override protected void EngineExecuteGuiCode(ZeusCodeSegment segment, ZeusGuiContext context)
        {
            try
            {
                this.Cleanup();
                this._codeSegment = segment;

                this._currentObject = InstantiateClass(this.CurrentAssembly, typeof(_DotNetScriptGui), context);

                if (this._currentObject is _DotNetScriptGui)
                {
                    this._interfaceObject = this._currentObject as _DotNetScriptGui;
                    this._interfaceObject.Setup();
                }

                if (context.Gui.ShowGui)
                {
                    OnShowGUI(context.Gui);
                    if (!context.Gui.IsCanceled)
                    {
                        context.Input.AddItems(context.Gui);
                    }
                }
            }
            catch (ZeusCompilerException ex)
            {
                ex.IsTemplateScript = false;
                throw ex;
            }
        }
コード例 #4
0
 public string GetCustomFooterCode(ZeusCodeSegment segment)
 {
     if (segment.SegmentType == ZeusConstants.CodeSegmentTypes.GUI_SEGMENT)
     {
         return(this._engine.BuildGuiClass(segment.Language));
     }
     else
     {
         return(this._engine.BuildBodyClass(segment.Language));
     }
 }
コード例 #5
0
        public string GetCustomHeaderCode(ZeusCodeSegment segment)
        {
            bool      isGui   = (segment.SegmentType == ZeusConstants.CodeSegmentTypes.GUI_SEGMENT);
            ArrayList imports = new ArrayList();

            imports.Add("System");
            imports.Add("System.Collections");
            imports.Add("Zeus");
            imports.Add("Zeus.DotNetScript");
            if (isGui)
            {
                imports.Add("Zeus.UserInterface");
            }

            foreach (ZeusScriptableObject obj in ZeusFactory.ScriptableObjects)
            {
                if (obj.Namespace != null)
                {
                    if (!imports.Contains(obj.Namespace))
                    {
                        imports.Add(obj.Namespace);
                    }
                }
            }

            ArrayList tmpExtraData = segment.ExtraData;

            string[] array;
            foreach (object obj in tmpExtraData)
            {
                if (obj is String[])
                {
                    array = (string[])obj;
                    if ((array.Length == 2) && (array[0] == DotNetScriptEngine.USE_NAMESPACE))
                    {
                        if (!imports.Contains(array[1]))
                        {
                            imports.Add(array[1]);
                        }
                    }
                }
            }

            return(this._engine.BuildImportStatments(segment.Language, imports));
        }
コード例 #6
0
		override protected void EngineExecuteCode(ZeusCodeSegment segment, ZeusTemplateContext context)
		{
			try 
			{
				this.Cleanup();
				this._codeSegment = segment;
			
				this._currentObject = InstantiateClass( this.CurrentAssembly, typeof(_DotNetScriptTemplate), context );

				if (this._currentObject is _DotNetScriptTemplate)
				{
					this._primaryObject = this._currentObject as _DotNetScriptTemplate;
					this._primaryObject.Render();
				}
			}
			catch (ZeusCompilerException ex)
			{
				ex.IsTemplateScript = true;
				throw ex;
			}
		}
コード例 #7
0
        override protected void EngineExecuteCode(ZeusCodeSegment segment, ZeusTemplateContext context)
        {
            try
            {
                this.Cleanup();
                this._codeSegment = segment;

                this._currentObject = InstantiateClass(this.CurrentAssembly, typeof(_DotNetScriptTemplate), context);

                if (this._currentObject is _DotNetScriptTemplate)
                {
                    this._primaryObject = this._currentObject as _DotNetScriptTemplate;
                    this._primaryObject.Render();
                }
            }
            catch (ZeusCompilerException ex)
            {
                ex.IsTemplateScript = true;
                throw ex;
            }
        }
コード例 #8
0
using System;
using System.IO;
using System.Collections;
namespace Zeus.DotNetScript
{
	/// <summary>
	/// Summary description for DotNetScriptParser.
	/// </summary>
	public class DotNetScriptCodeParser : IZeusCodeParser
	{
		protected const string INCLUDE_FILE = "FILE ";
		protected const string INCLUDE_REFERENCE = "REFERENCE ";
		protected const string INCLUDE_REFERENCE_ALT = "REF ";
		protected const string INCLUDE_NAMESPACE = "NAMESPACE ";
		protected const string INCLUDE_NAMESPACE_ALT = "NS ";
		protected const string WRITE = "output.write";
		protected const string WRITELN = "output.writeln";
		protected string[,] _csReplaceChars = new string[5, 2] { {"\\", "\\\\"}, {"\"", "\\\""}, {"\r", "\\r"}, {"\n", "\\n"}, {"\t", "\\t"} };
		protected string[,] _vbReplaceChars = new string[4, 2] { {"\"", "\"\""}, {"\r\n", "\" & vbcrlf & \""}, {"\n", "\" & vbcrlf & \""}, {"\r", "\" & vbcrlf & \""} };
		protected DotNetScriptEngine _engine;
		public DotNetScriptCodeParser(DotNetScriptEngine engine) 
		{
			_engine = engine;
		}
コード例 #9
0
		}
		
		public string ParseCustomTag(ZeusCodeSegment segment, string text)
		{