public BaseGraphTokenMatch Match(string input)
            {
                Match m = regex.Match(input);
                BaseGraphTokenMatch ret = null;

                if (m.Success)
                {
                    ret = new BaseGraphTokenMatch();

                    ret.token = token;
                    ret.value = m.Value.Trim();
                    if (ret.value[0] == '"')
                    {
                        ret.value = ret.value.Trim('"');
                    }
                    ret.remainingText = input.Substring(m.Value.Length);
                }
                return(ret);
            }
        //returns all possible token matches
        static BaseGraphTokenMatch      MatchTokens(string line, BaseGraphToken firstToken)
        {
            foreach (var tokenDef in GetTokenDefinitionsForStartToken(firstToken))
            {
                BaseGraphTokenMatch ret = tokenDef.Match(line.Trim());

                if (ret != null)
                {
                    if (debug)
                    {
                        Debug.Log("Token " + ret.token + " maches value: |" + ret.value + "|, remainingText: |" + ret.remainingText + "|");
                    }
                    return(ret);
                }
            }

            if (debug)
            {
                Debug.Log("No token maches found with line: " + line);
            }

            return(null);
        }