IndexOf() 공개 메소드

public IndexOf ( char text ) : int
text char
리턴 int
예제 #1
0
 private static bool IncrementIndexToSkipAnyComments(FastString script, ref int index)
 {
     if (index < script.Length - 1)
     {
         if ((script[index] == '/') && (script[index + 1] == '/'))
         {
             while ((script[index] != '\r') && (index < script.Length - 1))
             {
                 index++;
             }
         }
         if ((script[index] == '/') && (script[index + 1] == '*'))
         {
             index = script.IndexOf("*/", index + 2);
             if (index < 0)
             {
                 index = script.Length - 1;
                 return true;
             }
         }
     }
     return false;
 }
예제 #2
0
 private static void GoToNextLine(ref FastString script)
 {
     int indexOfNextLine = script.IndexOf("\r\n");
     if (indexOfNextLine < 0)
     {
         script = string.Empty;
     }
     else
     {
         script = script.Substring(indexOfNextLine + 2);
     }
 }
예제 #3
0
        private static bool AddFunctionDeclaration(List<ScriptFunction> functions, ref FastString script, string thisWord, AutoCompleteParserState state, bool isExtenderMethod)
        {
            bool succeeded = false;

            if ((state.LastWord.Length > 0) && (state.WordBeforeLast.Length > 0))
            {
                if (!DoesCurrentLineHaveToken(script, AUTO_COMPLETE_IGNORE))
                {
                    string functionName = state.LastWord;
                    string type = state.WordBeforeLast;
                    bool isPointer = false, isNoInherit = false;
                    bool isStatic = false, isStaticOnly = false;
                    bool isProtected = false;
                    if (type == "::")
                    {
                        functionName = state.WordBeforeWordBeforeLast + "::" + functionName;
                        type = (state.PreviousWords.Length > 3) ? state.PreviousWords[3] : "unknown";
                    }
                    if (type == "*")
                    {
                        isPointer = true;
                        type = state.WordBeforeWordBeforeLast;
                    }
                    if (state.DynamicArrayDefinition)
                    {
                        // get the type name and the []
                        type = state.WordBeforeWordBeforeLast + state.WordBeforeLast;
                    }
                    if (state.IsWordInPreviousList("static"))
                    {
                        isStatic = true;
                    }
                    if (state.IsWordInPreviousList("protected"))
                    {
                        isProtected = true;
                    }
                    if (DoesCurrentLineHaveToken(script, AUTO_COMPLETE_STATIC_ONLY))
                    {
                        isStaticOnly = true;
                    }
                    if (DoesCurrentLineHaveToken(script, AUTO_COMPLETE_NO_INHERIT))
                    {
                        isNoInherit = true;
                    }

                    int parameterListEndIndex = script.IndexOf(')');
                    if (parameterListEndIndex >= 0)
                    {
                        string parameterList = script.Substring(0, parameterListEndIndex);
                        script = script.Substring(parameterListEndIndex + 1);
                        ScriptFunction newFunc = new ScriptFunction(functionName, type, parameterList, state.InsideIfDefBlock, state.InsideIfNDefBlock, isPointer, isStatic, isStaticOnly, isNoInherit, isProtected, isExtenderMethod, state.CurrentScriptCharacterIndex - 1);
                        if (!string.IsNullOrEmpty(state.PreviousComment))
                        {
                            newFunc.Description = state.PreviousComment;
                            state.PreviousComment = null;
                        }
                        functions.Add(newFunc);
                        succeeded = true;
                    }
                    state.DynamicArrayDefinition = false;
                }
            }

            return succeeded;
        }
예제 #4
0
 private static bool DoesCurrentLineHaveToken(FastString script, string tokenToCheckFor)
 {
     int indexOfNextLine = script.IndexOf("\r\n");
     if (indexOfNextLine > 0)
     {
         if (script.Substring(0, indexOfNextLine).IndexOf(tokenToCheckFor) > 0)
         {
             return true;
         }
     }
     return false;
 }
예제 #5
0
 private static bool IncrementIndexToSkipAnyComments(FastString script, ref int index)
 {
     while (index < script.Length - 1 && (script[index] == '/'))
     {
         if ((script[index + 1] == '/'))
         {
             index = script.IndexOf('\r', index + 2);
             if (index < 0)
             {
                 index = script.Length;
             }
         }
         else
         {
             if ((script[index + 1] == '*'))
             {
                 index = script.IndexOf("*/", index + 2);
                 if (index < 0)
                 {
                     index = script.Length;
                 }
             }
             else
             {
                 break;
             }
         }
     }
     return index == script.Length;
 }