Пробіли та коментарі
Зазвичай AST не включає пробіл, лінійні термінатори та коментарі.
Змістовне форматування
Ви впевнені, що в більшості випадків це є позитивним (виключає форматування святих воєн), є багато випадків, коли форматування оригінального коду передає певний сенс, наприклад, у багаторядкових літеральних рядках та "кодових абзацах" (розділяючи блоки висловлювання з порожнім рядком).
Код, який неможливо скласти
Хоча багато парсери дуже стійкі до відсутнього синтаксису, код з помилками часто призводить до дуже дивного синтаксичного дерева, що є чудовим і денді до тих пір, поки користувач не перезавантажить файл. Ви коли-небудь помиляєтесь у своєму IDE, а раптом у всього файлу з'явилися "squigglies"? Уявіть, як це було б перезавантажено іншою мовою.
Можливо, користувачі не вводять незмінний код, але, безумовно, у них є необхідність зберігати локально.
Жодна дві мови не є ідеальними
Як зазначали інші, майже не існує двох мов, які мають ідеальний паритет. Найближчим, на який я можу подумати, є VB і C #, або JavaScript і CoffeeScript, але навіть тоді VB має такі функції, як XML Literals, які не мають цілком еквівалентів у C #, і перетворення JavaScript у CoffeeScript може призвести до появи багатьох літератур JavaScript.
Особистий досвід:
У програмному застосуванні, про яке я пишу, нам це потрібно зробити, оскільки очікується, що користувачі вводять "звичайні англійські" вирази, які перетворюються на JS у фоновому режимі. Ми розглядали лише можливість зберігання версії JS, але не знайшли прийнятного способу зробити це надійно завантаженим та вивантаженим, тому ми в кінцевому підсумку завжди зберігали як текст користувача, так і версію JS, а також прапор, який вказував, якщо "звичайний англійський" "версія проаналізована ідеально чи ні.