ฉันมีฟังก์ชั่น parseQuery ที่แยกวิเคราะห์แบบสอบถาม SQL เป็นตัวแทนนามธรรมของแบบสอบถามนั้น
ฉันกำลังจะเขียนฟังก์ชั่นที่นำเสนอนามธรรมของแบบสอบถามและส่งกลับสตริงแบบสอบถาม SQL
ฉันควรเรียกฟังก์ชันที่สองว่าอะไร
ฉันมีฟังก์ชั่น parseQuery ที่แยกวิเคราะห์แบบสอบถาม SQL เป็นตัวแทนนามธรรมของแบบสอบถามนั้น
ฉันกำลังจะเขียนฟังก์ชั่นที่นำเสนอนามธรรมของแบบสอบถามและส่งกลับสตริงแบบสอบถาม SQL
ฉันควรเรียกฟังก์ชันที่สองว่าอะไร
คำตอบ:
ฉันคิดว่าคำกริยาที่คุณต้องการคือ 'เขียน'
ตรงกันข้ามของการแยกวิเคราะห์เป็นอนุกรม
ในคำศัพท์คอมไพเลอร์ตรงกันข้ามคือ "unparse" โดยเฉพาะการแยกวิเคราะห์เปลี่ยนโทเค็นสตรีมเป็นต้นไม้ไวยากรณ์นามธรรมในขณะที่การแยกวิเคราะห์เปลี่ยนต้นไม้ไวยากรณ์นามธรรมเป็นสตรีมของโทเค็น
เขียน? เมื่อแยกเคียวรีที่คุณแบ่งออกเป็นส่วนที่เป็นส่วนประกอบ (โทเค็น ฯลฯ ) การย้อนกลับจะเป็นการเขียนส่วนต่างๆลงในเคียวรีสตริง
เพื่อเสริมการตั้งชื่อที่มีอยู่composeQueryดูดีที่สุด
แต่ในกรณีทั่วไปตรงกันข้ามของการแยกวิเคราะห์คือǝsɹɐd
ฉันจะใช้อย่างใดอย่างหนึ่งเหล่านี้:
ฉันคิดว่า "เป็นอันดับ" อาจเป็นคำที่คุณต้องการ มันหมายถึงการสร้างการแสดงข้อความของข้อมูลที่สามารถส่งออก (และนำเข้า) จากโปรแกรม
ToQueryString ()
แสดงผลอย่างแน่นอน
ฉันจะเรียกมันว่าสร้างแบบสอบถาม
สร้างหรือปล่อยอาจเป็นไปได้
เพียงเพิ่มบางสิ่ง
การแยกคำแน่นอนเป็นคำสองทาง
คุณสามารถแยกบทคัดย่อเป็นแบบสอบถาม
คุณสามารถแยกแบบสอบถามเป็นนามธรรม
คำถามควรเป็นสิ่งที่คุณตั้งชื่อส่วนหลังของวิธีการและเพราะในกรณีนี้คุณจะแยกบทคัดย่อเพื่อทำแบบสอบถามที่คุณเรียกว่า parseAbstract
คำถามที่ควรจะทำในสิ่งที่คุณชื่อส่วนหลังของวิธีการและเนื่องจากในกรณีนี้คุณกำลังแยกนามธรรมที่จะทำให้แบบสอบถามที่คุณต้องการเรียกมันว่า
ในการตอบคำถามการวิเคราะห์คำไม่ตรงข้าม
generateQuery อาจจะ? createQuery?
เลือกของคุณ
พวกเขาแต่ละคนมีความหมายแตกต่างกันเล็กน้อย
อาจสวยพิมพ์แบบสอบถามไหม
เขียน, สร้าง, สร้าง, แสดงผล, บีบอัด, ลด, toSQL, toString ขึ้นอยู่กับลักษณะของคลาสและตัวดำเนินการที่เกี่ยวข้อง
คอมไพเลอร์แบบดั้งเดิมมีสองส่วนคือตัวแยกวิเคราะห์และตัวสร้างโค้ด
ดังนั้นคุณสามารถเรียกมันว่า "สร้าง" แน่นอนมันแตกต่างกันเล็กน้อยที่นี่เพราะคอมไพเลอร์ไม่ได้เขียนซอร์สโค้ด (เว้นแต่จะเป็น precompiler)
รูปแบบที่เป็นไปได้ () หรือ ToSQL () ในอินสแตนซ์ของคุณ?
unParse ()? แค่ล้อเล่นฉันจะไปกับ toQueryString ()
เรียบ?
วัตถุแบบสอบถามแยกวิเคราะห์อาจหมายถึงลำดับชั้นของเงื่อนไขซึ่งคุณ "แบน" กลับเข้าไปในสตริง 1 มิติ
แต่เนื่องจากคุณไปจากอ็อบเจกต์ถึงสตริงคุณก็แค่ใช้ toString หรือ toSQL () หรืออะไรทำนองนั้น นอกจากนี้หากคุณออกแบบมาอย่างดีและใช้แอพที่ถูกต้องคุณสามารถเปลี่ยนชื่อได้ในภายหลัง
ฉันจะบอกว่าเป็นอันดับและ deserialize แทนการแยกวิเคราะห์และ ...
ฉันจะไปหา ToString () เนื่องจากคุณมักจะทำรังต่อพวกมัน (ฟังก์ชั่นตรงข้ามที่ให้คุณผ่านจาก Class1 ไปที่ Class2 และในทางกลับกัน)
DateTime.Parse( DateTime.Parse( myDate.ToString() ).ToString() );
ทำให้เป็นอันดับ () ดูเหมือนเป็นตัวเลือกที่ดี แต่มีอยู่ตรงกันข้ามใน Deserialize ()
ในสถานการณ์เฉพาะของคุณดังที่คนอื่น ๆ ชี้ให้เห็น ToSql () เป็นอีกทางเลือกที่ดี
ฉันจะใช้เรนเดอร์
> 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>
ซึ่งเป็น IMHO ตรงข้ามกับการแยกวิเคราะห์ ()
> c = parse(b)
{ 'html': {
'head': {
'title': 'My Page'
}
'body': {
'h1': 'Hello World',
'p': 'This is a Paragraph'
}
}
+1 สำหรับ Generate แต่ใช้สิ่งที่คุณกำลังสร้างเช่น GenerateSQL ()
ฉันโหวตให้ 'เรียบเรียง' แต่ถ้าคุณไม่ชอบฉันก็จะแนะนำ 'สร้าง'
สิ่งที่เกี่ยวกับ asSQL () หรือมากกว่า asQuery ()?
INHO เรียงลำดับสังเคราะห์เป็นตัวเลือกที่ดี นอกจากนี้เมื่อคุณตั้งชื่อ parseQuery ฉันจะไปกับ codeQuery
ฉันมักจะใช้ "แจง" เป็นวิธีการแปลงดังนั้นฉันไม่สามารถหาคำตรงกันข้ามสำหรับ "แปลง" (คุณไม่สามารถ "แยกแยะ" บางสิ่งเนื่องจาก "unconvert" เป็นประเภทการแปลงเอง)
การคิดแบบนี้ทางออกที่ดีที่สุด (สำหรับฉัน) คือการมีวิธี "แยกวิเคราะห์" สองวิธีที่ได้รับการขัดแย้งที่แตกต่างกัน ตัวอย่าง (Java):
public class FooBarParser{
public Foo parse(Bar bar);
public Bar parse(Foo foo);
}
deparse
การแยกวิเคราะห์คือ:
การแยกวิเคราะห์ / แยกส่วนไม่ได้เปลี่ยนโครงสร้าง แต่เป็นการแปลง การแปลงที่แม่นยำระหว่างข้อความที่เทียบเท่าและรูปแบบ abstract-syntax-tree รักษาความสัมพันธ์และโครงสร้างทั้งหมด
"เขียน" หมายถึงการเปลี่ยนแปลงโครงสร้างดังนั้นจึงไม่ถูกต้องนัก มันแสดงให้เห็นการรวมกันจากชิ้นส่วนอิสระแยกต่างหาก (มักเป็นครั้งแรก) เช่นเดียวกับ "สลายตัว" แนะนำให้แยกออกเป็นส่วนอิสระ พวกเขาเปลี่ยนรูปแบบไม่ใช่เพียงแค่จัดรูปแบบ
การค้นหาอย่างรวดเร็วแสดงคำที่ใช้ภายใน: