Guest User

Untitled

a guest
Aug 20th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. private static SymbolTable CreatePathSymbols(SymbolTable symbols, IEnumerable<String> fragments)
  2. {
  3. return EnumerableEx.Generate(
  4. Tuple.Create(fragments, symbols),
  5. _ => _.Item1.Any(),
  6. _ => Tuple.Create(_.Item1.Skip(1), _.Item1.First()
  7. .Let(f => _.Item2.ExistsKey(f) && _.Item2.Resolve(f).Const<SymbolTable>() != null
  8. ? symbols.Resolve(f).Const<SymbolTable>()
  9. : new SymbolTable().Apply(s => _.Item2[f] = Expression.Constant(s))
  10. )),
  11. _ => _.Item2
  12. ).Last().Resolve(fragments.Last()).Const<SymbolTable>();
  13. }
Add Comment
Please, Sign In to add comment