public static OperationTrie Create(IEnumerable <IOperation> operations)
            {
                OperationTrie trie = new OperationTrie();

                foreach (IOperation operation in operations)
                {
                    int tokenNumber = 0;
                    foreach (IToken token in operation.Tokens)
                    {
                        trie.AddPath(token.Value, new OperationTerminal(operation, tokenNumber++, token.Length, token.Start, token.End));
                    }
                }

                return(trie);
            }