Esempio n. 1
0
 override public IRTSDefine.Error onCompile(RTSList <IRTSLinker> compileList)
 {
     if (mBeConst)
     {
         return(0);
     }
     else if (mId == IRTSDefine.Linker.VARIABLE)
     {
         mConst = RTSConverter.getCompileValue(mSrc);
         if (mConst == null && !RTSUtil.isGoodName(mSrc))
         {
             return(IRTSDefine.Error.Compiling_DenyLinker);
         }
         return(0);
     }
     else if (mId == IRTSDefine.Linker.FUNCTION)
     {
         if (!RTSUtil.isGoodName(mSrc))
         {
             return(IRTSDefine.Error.Compiling_DenyLinker);
         }
         compileList.add(mArg);
         return(0);
     }
     else
     {
         return(IRTSDefine.Error.Compiling_DenyLinker);
     }
 }
Esempio n. 2
0
        void formatInput()
        {
            mTimer -= Time.unscaledDeltaTime;
            if (mTimer < 0)
            {
                mTimer = 1.6f;
            }
            bool newCur = mTimer <= 0.8f;

            if (mText != null && !ireader.IsDirty && (newCur == mCursorLight))
            {
                return;
            }
            mCursorLight = newCur;
            mText        = ireader.Text;
            if (mText == null)
            {
                mText = "";
            }

            string curColor = mCursorLight ? "#ffffffff" : "#808080ff";
            LinkedList <RichTextStyle> styles = null;
            int off;

            if (useStyle)
            {
                if (mReader == null)
                {
                    wordReard.Reload(mText);
                    off = wordReard.getTempOffset();
                    string atomStr;
                    while (wordReard.hasNext())
                    {
                        wordReard.fixCharsOffset();
                        noteStyle.start = off;
                        noteStyle.end   = wordReard.getTempOffset();
                        RichTextStyle.AddStyle(ref styles, noteStyle, true);
                        off     = wordReard.getTempOffset();
                        atomStr = wordReard.nextWord(mEngine);
                        if (atomStr == null)
                        {
                            break;
                        }
                        RichTextStyle set;
                        if (RTSConverter.getCompileValue(atomStr) != null || atomStr.StartsWith("\""))
                        {
                            set = valueStyle;
                        }
                        else if (mEngine.containsVar(atomStr))
                        {
                            set = variableStyle;
                        }
                        else
                        {
                            set = mEngine.isKeyWord(atomStr) ? keyWordStyle : normalStyle;
                        }
                        set.start = off;
                        set.end   = wordReard.getTempOffset();
                        RichTextStyle.AddStyle(ref styles, set, true);
                        off = wordReard.getTempOffset();
                    }
                }
                else
                {
                    readStyle.start = 0;
                    readStyle.end   = mText.Length;
                    RichTextStyle.AddStyle(ref styles, readStyle, true);
                }
            }
            off = Mathf.Min(ireader.SelectStart, ireader.SelectEnd);
            int end = Mathf.Max(ireader.SelectStart, ireader.SelectEnd);

            selectionStyle.start = off;
            selectionStyle.end   = end;
            RichTextStyle.AddStyle(ref styles, selectionStyle, true);
            int curIndex = ireader.SelectStart;

            if (curIndex == ireader.Length)
            {
                mText += "_";
            }
            else
            {
                char c = mText[curIndex];
                if (c == ' ')
                {
                    mText = mText.Remove(curIndex, 1);
                    mText = mText.Insert(curIndex, "_");
                }
                else if (c == '\n')
                {
                    mText = mText.Insert(curIndex, "_");
                }
            }

            RichTextStyle.AddStyle(ref styles, new RichTextStyle(curIndex, curIndex + 1, curColor, mReader == null ? 0 : readStyle.size, 0), true);
            RichTextStyle.Optimization(styles);

            mText = RichTextStyle.UseStyles(styles, mText, RichTextType.gui_style);
            if (mReader != null)
            {
                mText = mReaderName + "$" + mText;
            }
        }