Apa kebalikan dari 'parse'? [Tutup]

147

Saya memiliki fungsi, parseQuery, yang mem-parsing query SQL ke representasi abstrak dari query itu.

Saya akan menulis sebuah fungsi yang mengambil representasi abstrak dari sebuah query dan mengembalikan sebuah string query SQL.

Apa yang harus saya sebut fungsi kedua?

Simon
sumber
Meregang? Kelas JSON menggunakan terminologi ini. JSON.parse dan sebaliknya JSON.stringify ?
Layu

Jawaban:

200

Saya pikir kata kerja yang Anda inginkan adalah 'menulis'.

Joel Coehoorn
sumber
3
@ Joel: twitter.com/shanselman/status/5024768993
Daniel Schaffer
16
Maksud saya, kembali setahun kemudian saya bahkan akan menjawab 'berkumpul' sebagai lawan yang lebih baik, atau 'membangun' sebagai nama fungsi yang lebih baik.
Joel Coehoorn
3
Oh wow, saya tidak memeriksa tanggal ini ... SANGAT necromancy pertanyaan!
Daniel Schaffer
err .. kenapa tidak ToString ()? Tampaknya menjadi standar yang ditetapkan oleh orang-orang seperti Int32, dll
Joseph Kingry
1
membuat komentar saya sebelumnya sebelum melihat bahwa pertanyaannya adalah bahasa-agnostik. ToString () tampaknya menjadi standar yang diterima oleh .NET
Joseph Kingry
79

Kebalikan dari parse adalah serial

Yuval Adam
sumber
1
Ini mungkin jawaban yang paling berguna dari sudut pandang saya.
JosephDoggie
8
Bagaimana dengan 'deserialize'?
Den
32

Dalam terminologi kompiler, kebalikannya adalah "unparse". Secara khusus, parsing mengubah aliran token menjadi pohon sintaksis abstrak, sementara parsing mengubah pohon sintaksis abstrak menjadi aliran token.

Barry Kelly
sumber
4
Seperti untuk uncrash mobil ...
Walter Tross
31

Menyusun? Saat mem-parsing kueri Anda memecahnya menjadi bagian-bagian penyusunnya (token, dll.), Kebalikannya akan menyusun bagian-bagian menjadi kueri string.

Michael Brown
sumber
21

Untuk melengkapi penamaan yang ada, composeQuery terlihat terbaik.

Tetapi dalam kasus umum, kebalikan dari parse adalah ǝsɹɐd

danja
sumber
8
Saya pikir itu kebalikannya, kebalikannya adalah esrap
agusgambina
@agusgambina: sebenarnya, ini masuk akal ... Pikirkan tentang Bourne shell: if ... fi case ... esac
shrike
20

Saya akan menggunakan salah satu dari ini:

  • ToString ()
  • ToSQL ()
  • Memberikan()
Sklivvz
sumber
17

Saya pikir "cerita bersambung" mungkin kata yang Anda inginkan. Ini berarti menghasilkan representasi data tekstual yang dapat diekspor (dan diimpor) dari program.

Kyle Cronin
sumber
1
Serialize bisa dengan mudah berarti representasi biner.
Ben Hoffstein
1
Benar. Parsimg adalah semua tentang memudar dalam data eksternal, dan serialisasi adalah tentang menghasilkan data untuk penggunaan eksternal. Format yang dihasilkan tidak harus berupa teks, tetapi sering kali harus.
Kyle Cronin
Tampaknya keyboard iPod saya menjadi lebih baik dari saya. Itu seharusnya "parsing" dan "membaca".
Kyle Cronin
15

Antonim dari 'analisis' adalah 'disintesis'.

Mike F
sumber
4
mempersatukan. pilihan bagus.
MikeJ
13

ToQueryString ()

alas tiang
sumber
12

Pasti Memberikan.

David Mitchell
sumber
10

Saya akan menyebutnya constructQuery.

Detik
sumber
Kedengarannya hampir sempurna. Itulah yang akan terjadi. Dia akan mengumpulkan data yang bisa "dimasukkan ke dalam kata-kata". Dia akan "membangun" kueri.
Tgwizman
10

menghasilkan atau memancarkan, mungkin.

DGentry
sumber
1
Saya setuju. rfc7159 (JSON), di bagian 9 dan 10 mendefinisikan "Parser" dan "Generator" sebagai lawan.
mydoghasworms
10

Hanya untuk menambahkan beberapa hal.

Tentunya parse adalah kata dua arah.

Anda bisa menguraikan abstrak ke dalam kueri.

Anda dapat menguraikan kueri menjadi abstrak.

Pertanyaannya seharusnya, apa yang Anda beri nama bagian terakhir dari metode ini, dan karena dalam hal ini Anda mengurai abstrak untuk membuat kueri yang Anda sebut dengan itu parseAbstract.

Untuk menjawab pertanyaan, penguraian tidak memiliki kebalikan.

Henry B
sumber
9

menghasilkanQuery, mungkin? buatQuery?

Dre
sumber
8

Ambil pilihanmu

  • Menghasilkan
  • Membuang
  • Serialkan
  • Memancarkan

Mereka masing-masing memiliki konotasi yang sedikit berbeda.

Mike Graham
sumber
7

menyusun, membuat, membuat, menyajikan, menyingkat, mengurangi, toSQL, toString tergantung pada sifat kelas dan operator terkait

MikeJ
sumber
6

Kompiler tradisional memiliki dua bagian: parser dan generator kode.

Jadi Anda bisa menyebutnya "Hasilkan". Tentu saja, ini sedikit berbeda di sini karena kompiler tidak menulis kode sumber. (kecuali itu adalah precompiler).

Walter Mitty
sumber
5

Mungkin Format (). atau ToSQL () dalam instance Anda?

Omar Kooheji
sumber
5

unParse ()? Hanya bercanda, saya akan pergi dengan toQueryString ()

Ben Hoffstein
sumber
4

meratakan?

Objek kueri yang diuraikan mungkin mewakili hierarki kondisi, yang Anda "ratakan" menjadi string 1 dimensi.

Tetapi mengingat bahwa Anda beralih dari objek ke string, gunakan saja toString atau toSQL () atau sesuatu seperti itu. Selain itu, jika Anda mendesainnya dengan baik dan menggunakan aplikasi yang tepat, Anda dapat mengganti nama nanti dan menempelkannya di komentar tentang apa yang dilakukannya.

Josh
sumber
4

Saya akan mengatakan cerita bersambung dan deserialize, bukan parse dan ...

Christophe Herreman
sumber
4

Saya akan memilih ToString (), karena Anda biasanya dapat membuat sarang rantai (fungsi berlawanan, yang memungkinkan Anda beralih dari Class1 ke Class2 dan sebaliknya)

DateTime.Parse( DateTime.Parse( myDate.ToString() ).ToString() );

Serialize () sepertinya pilihan yang bagus, tetapi sudah ada kebalikannya di Deserialize ().

Dalam skenario spesifik Anda, seperti yang ditunjukkan lainnya, ToSql () adalah pilihan lain yang baik.

Filini
sumber
4

Saya akan menggunakan render

> a = 'html': { 'head': {'title': 'My Page'}, 'body': { 'h1': 'Hello World', 'p': 'This is a Paragraph' } }

> b = render(a)

> console.log(b)

<html>
    <head>
        <title>My Page</title>
    </head>
    <body>
        <h1>Hello World</h1>
        <p>This is a Paragraph</p>
    </body>
</html>

Yang merupakan IMHO, kebalikan dari parse ()

> c = parse(b)

{ 'html': {
    'head': {
        'title': 'My Page'
    }
    'body': {
        'h1': 'Hello World',
        'p': 'This is a Paragraph'
    }
}
Herman Junge
sumber
3

+1 untuk Generate, tetapi tempelkan pada apa yang Anda hasilkan, yaitu GenerateSQL ()

Tom Lahti
sumber
3

Saya memilih 'menulis' tetapi jika Anda tidak suka saya juga akan menyarankan 'membangun'

Orang
sumber
3

Bagaimana dengan asSQL () atau bahkan lebih asQuery ()?

Müge
sumber
3

INHO Serialize, synthesize adalah pilihan yang bagus. Juga, seperti yang Anda beri nama parseQuery, saya akan pergi dengan codeQuery

mbmihura
sumber
3

Saya biasanya menggunakan "parse" sebagai metode konversi dan, oleh karena itu, saya tidak dapat menemukan kata yang berlawanan untuk "convert". (Anda tidak dapat "membatalkan" sesuatu, karena "membatalkan konversi" adalah jenis konversi itu sendiri).

berpikir seperti ini, solusi terbaik (bagi saya) adalah memiliki dua metode "parse" yang menerima argumen yang berbeda. Contoh (Jawa):

public class FooBarParser{

    public Foo parse(Bar bar);
    public Bar parse(Foo foo); 
}
David Paulo
sumber
2

kasar

Deparse adalah untuk menguraikan, seperti:

  • dekompilasi adalah mengkompilasi
  • membusuk adalah untuk menulis
  • deserialize adalah serialisasi
  • degroovy adalah ke groovy :);)

Parsing / deparsing bukan perubahan struktur, tetapi konversi. Konversi yang tepat antara teks setara dan format pohon-sintaksis abstrak, mempertahankan semua hubungan & struktur.

"Menulis" berarti perubahan struktur, jadi tidak tepat. Ini menyarankan menggabungkan dari bagian-bagian independen yang terpisah (biasanya untuk pertama kalinya). Sama seperti "membusuk" menyarankan pemisahan menjadi bagian-bagian independen. Mereka mengubah bentuk, bukan hanya format.

Acara pencarian cepat adalah istilah yang digunakan dalam:

Glen Best
sumber
Pencarian Kode Github cepat mengungkapkan bahwa istilah "deparse" tidak memiliki penggunaan luas, lihat github.com/search?q=deparse - Saya menganggap "deparse" sebagai istilah dari ekosistem R. - Bagi saya kebalikan dari parsing adalah menghasilkan. Dalam parsing , kita memiliki kalimat dan tata bahasa sebagai input dan ingin tahu apa struktur sintaksis dan / atau representasi semantik dari kalimat itu. Dalam generasi , kami memiliki representasi semantik dan tata bahasa sebagai masukan dan ingin menemukan kalimat yang sesuai dengan representasi semantik.
Jens A. Koch