Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static SymbolTable CreatePathSymbols(SymbolTable symbols, IEnumerable<String> fragments)
- {
- return EnumerableEx.Generate(
- Tuple.Create(fragments, symbols),
- _ => _.Item1.Any(),
- _ => Tuple.Create(_.Item1.Skip(1), _.Item1.First()
- .Let(f => _.Item2.ExistsKey(f) && _.Item2.Resolve(f).Const<SymbolTable>() != null
- ? symbols.Resolve(f).Const<SymbolTable>()
- : new SymbolTable().Apply(s => _.Item2[f] = Expression.Constant(s))
- )),
- _ => _.Item2
- ).Last().Resolve(fragments.Last()).Const<SymbolTable>();
- }
Add Comment
Please, Sign In to add comment