คำถามติดแท็ก parsing

การแยกหมายถึงการแบ่งสิ่งประดิษฐ์ลงในองค์ประกอบที่เป็นองค์ประกอบและจับความสัมพันธ์ระหว่างองค์ประกอบเหล่านั้น แท็กนี้ไม่ได้มีคำถามเกี่ยวกับแพลตฟอร์มการแยกวิเคราะห์ที่โฮสต์ด้วยตนเอง (ใช้แท็ก [แยกวิเคราะห์แพลตฟอร์ม]) หรือข้อผิดพลาดในการแยกวิเคราะห์ในภาษาการเขียนโปรแกรมเฉพาะ (ใช้แท็กภาษาที่เหมาะสมแทน)

8
อะไรคือความแตกต่างระหว่างตัวแยกวิเคราะห์ LR, SLR และ LALR
อะไรคือความแตกต่างที่แท้จริงระหว่างตัวแยกวิเคราะห์ LR, SLR และ LALR ฉันรู้ว่า SLR และ LALR เป็นประเภทของตัวแยกวิเคราะห์ LR แต่อะไรคือความแตกต่างที่แท้จริงของตารางแยกวิเคราะห์ และจะแสดงได้อย่างไรว่าไวยากรณ์เป็น LR, SLR หรือ LALR? สำหรับไวยากรณ์ LL เราต้องแสดงให้เห็นว่าเซลล์ใด ๆ ของตารางการแยกวิเคราะห์ไม่ควรมีกฎการผลิตหลายข้อ กฎที่คล้ายกันสำหรับ LALR, SLR และ LR หรือไม่ ตัวอย่างเช่นเราจะแสดงให้เห็นว่าไวยากรณ์ได้อย่างไร S --> Aa | bAc | dc | bda A --> d LALR คือ (1) แต่ไม่ใช่ SLR (1)? แก้ไข (ybungalobill) : …

15
C # เทียบเท่ากับ NaN หรือ IsNumeric คืออะไร?
วิธีใดเป็นวิธีที่มีประสิทธิภาพที่สุดในการทดสอบสตริงอินพุตว่ามีค่าตัวเลข (หรือตรงกันข้ามไม่ใช่ตัวเลข) ฉันเดาว่าฉันสามารถใช้Double.Parseหรือ regex ได้ (ดูด้านล่าง) แต่ฉันสงสัยว่ามีบางอย่างที่สร้างขึ้นเพื่อทำสิ่งนี้เช่น javascript NaN()หรือIsNumeric()(VB นั้นฉันจำไม่ได้หรือไม่) public static bool IsNumeric(this string value) { return Regex.IsMatch(value, "^\\d+$"); }
103 c#  parsing 

7
วิธีสร้างภาษาใหม่สำหรับใช้ใน Visual Studio
ฉันต้องการเขียนภาษาเทมเพลตใหม่และฉันต้องการให้ Visual Studio "สนับสนุน" สิ่งที่ฉันต้องรู้คือ: ฉันจะแยกวิเคราะห์ภาษาใหม่ของฉันได้อย่างไร ด้วยภาษาเทมเพลตใหม่ของฉันฉันจะแปลเป็น HTML ได้อย่างไร ตอนนี้ฉันกำลังใช้นิพจน์ทั่วไปเพื่อแยกวิเคราะห์โทเค็นด้วยโทเค็น แต่ฉันไม่คิดว่าสิ่งนี้จะปรับขนาดได้ดีนักเพราะภาษาซับซ้อนขึ้นและไม่มีการตรวจสอบข้อผิดพลาด ฉันเคยได้ยินเกี่ยวกับ ANTLR แต่ไม่เคยใช้เลย นั่นจะเป็นเครื่องมือที่เหมาะสมสำหรับงานนี้หรืออาจจะมีอะไรที่ง่ายกว่านี้? ตามหลักการแล้วฉันต้องการส่งข้อผิดพลาดทางไวยากรณ์ไปยังหน้าต่างข้อผิดพลาดพร้อมข้อมูลให้มากที่สุด (บรรทัด # ประเภทของข้อผิดพลาด) เหมือนกับภาษาอื่น ๆ ฉันจะสร้างประเภทไฟล์ใหม่สำหรับ Visual Studio ได้อย่างไร ฉันจะเน้นไวยากรณ์ได้อย่างไร ฉันสามารถใช้ตัวแยกวิเคราะห์เดียวกันกับที่ฉันสร้างในขั้นตอนที่ 1 ได้หรือไม่หรือสิ่งนี้แตกต่างอย่างสิ้นเชิง ฉันจะรับ Intellisense ได้อย่างไร? ฉันต้องการเขียนโปรแกรมแยกวิเคราะห์ของฉันใน C #

15
Parser สำหรับ C #
มีตัวแยกวิเคราะห์ใดบ้างสำหรับการแยกวิเคราะห์รหัส C # ฉันกำลังมองหาตัวแยกวิเคราะห์ C # ที่สามารถใช้ใน C # และให้ฉันเข้าถึงข้อมูลบรรทัดและไฟล์เกี่ยวกับสิ่งประดิษฐ์แต่ละชิ้นของรหัสที่วิเคราะห์ได้
101 c#  parsing 

15
รับโดเมนย่อยจาก URL
การรับโดเมนย่อยจาก URL นั้นฟังดูง่ายในตอนแรก http://www.domain.example สแกนหาช่วงแรกจากนั้นส่งคืนสิ่งที่ตามมาหลัง "http: //" ... แล้วคุณจำไว้ http://super.duper.domain.example โอ้. ถ้าอย่างนั้นคุณก็คิดว่าโอเคหาคาบสุดท้ายย้อนกลับคำและรับทุกอย่างก่อน! แล้วคุณจำไว้ http://super.duper.domain.co.uk และคุณกลับมาที่กำลังสอง ใครมีไอเดียดีๆนอกเหนือจากการจัดเก็บรายการ TLD ทั้งหมด
101 url  parsing  dns  subdomain 

8
แปลง String เป็น DateTime
ฉันต้องการแยกวิเคราะห์ String ต่อไปนี้เป็น DateTime Object: 30/Nov/2009:16:29:30 +0100 มีวิธีง่ายๆในการทำเช่นนี้หรือไม่? PS:ฉันต้องการแปลงสตริงด้านบนตามที่เป็นอยู่ ลำไส้ใหญ่หลังปีไม่ใช่การพิมพ์ผิด ฉันยังต้องการแก้ปัญหาด้วย Ruby ไม่ใช่ RoR
101 ruby  date  time  parsing 

5
HTML parses ทำงานอย่างไรหากไม่ได้ใช้ regexp
ฉันเห็นคำถามทุกวันเพื่อถามวิธีแยกวิเคราะห์หรือดึงข้อมูลบางอย่างจากสตริง HTML และคำตอบ / ความคิดเห็นแรกคือ "อย่าใช้ RegEx เพื่อแยกวิเคราะห์ HTML เกรงว่าคุณจะรู้สึกโกรธ!" (บางครั้งส่วนสุดท้ายจะถูกละไว้) สิ่งนี้ค่อนข้างสับสนสำหรับฉันฉันคิดเสมอว่าโดยทั่วไปวิธีที่ดีที่สุดในการแยกวิเคราะห์สตริงที่ซับซ้อนคือการใช้นิพจน์ทั่วไป โปรแกรมแยกวิเคราะห์ HTML ทำงานอย่างไร? มันไม่ใช้นิพจน์ทั่วไปในการแยกวิเคราะห์ อาร์กิวเมนต์เฉพาะสำหรับการใช้นิพจน์ทั่วไปคือไม่มีทางเลือกในการแยกวิเคราะห์เสมอไป (เช่น JavaScript โดยที่ DOMDocument ไม่ใช่ตัวเลือกที่ใช้ได้ทั่วไป) ตัวอย่างเช่น jQuery ดูเหมือนจะจัดการได้ดีโดยใช้ regex เพื่อแปลงสตริง HTML เป็นโหนด DOM ไม่แน่ใจว่า CW หรือไม่นี่เป็นคำถามที่แท้จริงที่ฉันต้องการคำตอบและไม่ได้ตั้งใจให้เป็นกระทู้สนทนา

14
วิธีอ่านไฟล์ json เป็น java ด้วยไลบรารี JSON อย่างง่าย
ฉันต้องการอ่านJSONไฟล์นี้ด้วย java โดยใช้ json simple library JSONไฟล์ของฉันมีลักษณะดังนี้: [ { "name":"John", "city":"Berlin", "cars":[ "audi", "bmw" ], "job":"Teacher" }, { "name":"Mark", "city":"Oslo", "cars":[ "VW", "Toyata" ], "job":"Doctor" } ] นี่คือรหัส java ที่ฉันเขียนเพื่ออ่านไฟล์นี้: package javaapplication1; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.Iterator; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; public class …

7
Objective-C แยกวิเคราะห์สตริงฐานสิบหกเป็นจำนวนเต็ม
ฉันต้องการทราบวิธีแยกวิเคราะห์สตริงฐานสิบหกซึ่งเป็นตัวแทนของตัวเลขใน Objective-C ฉันยินดีที่จะใช้ทั้งวัตถุประสงค์หรือวิธีการตาม C ก็ใช้ได้ ตัวอย่าง: #01FFFFAB ควรแยกวิเคราะห์เป็นจำนวนเต็ม: 33554347 ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม!

13
จะแยกวิเคราะห์ชื่อเดือน (สตริง) เป็นจำนวนเต็มเพื่อเปรียบเทียบใน C # ได้อย่างไร?
ฉันต้องสามารถเปรียบเทียบชื่อเดือนที่ฉันมีในอาร์เรย์ได้ คงจะดีไม่น้อยหากมีทางตรงเช่น: Month.toInt("January") > Month.toInt("May") การค้นหา Google ของฉันดูเหมือนจะแนะนำวิธีเดียวคือการเขียนวิธีการของคุณเอง แต่ดูเหมือนว่าจะเป็นปัญหาทั่วไปที่ฉันคิดว่ามันจะถูกนำไปใช้แล้วใน. Net มีใครเคยทำมาก่อน
94 c#  parsing  integer  compare 

5
มีฟังก์ชัน Parse () ทั่วไปที่จะแปลงสตริงเป็นประเภทใด ๆ โดยใช้การแยกวิเคราะห์หรือไม่
ฉันต้องการแปลงสตริงเป็นประเภททั่วไปเช่นintหรือdateหรือlongตามประเภทการส่งคืนทั่วไป โดยทั่วไปฟังก์ชั่นเหมือนที่ส่งกลับรายการของการพิมพ์ Parse<T>(String)T ตัวอย่างเช่นถ้า int ถูกส่งผ่านฟังก์ชันควรทำint.parseภายใน

2
มีเครื่องหมายคำถามมากกว่าหนึ่งรายการใน URL หรือไม่
วันนี้ฉันเจอ URL ต่อไปนี้: http://www.sfgate.com/cgi-bin/blogs/inmarin/detail??blogid=122&entry_id=64497 สังเกตเครื่องหมายคำถามสองเท่าที่จุดเริ่มต้นของสตริงข้อความค้นหา: ??blogid=122&entry_id=64497 ดูเหมือนว่าเบราว์เซอร์ของฉันจะไม่มีปัญหาใด ๆ และเรียกใช้ bookmarklet อย่างรวดเร็ว: javascript:alert(document.location.search); เพิ่งให้สตริงข้อความค้นหาที่แสดงด้านบน นี่คือ URL ที่ถูกต้องหรือไม่ เหตุผลที่ฉันเป็นคนอวดดี (สมมติว่าฉันเป็น) เป็นเพราะฉันต้องแยกวิเคราะห์ URL แบบนี้สำหรับพารามิเตอร์การค้นหาและการรองรับเครื่องหมายคำถามสองเท่าจะต้องมีการเปลี่ยนแปลงบางอย่างกับโค้ดของฉัน แน่นอนว่าถ้าพวกมันอยู่ในป่าฉันจะต้องสนับสนุนพวกมัน ฉันสงสัยเป็นหลักว่าเป็นความผิดของฉันที่ไม่ปฏิบัติตามมาตรฐาน URL อย่างแน่นอนหรือว่าเป็น URL ที่ไม่ได้มาตรฐาน


1
อะไรทำให้ Java แยกวิเคราะห์ได้ง่ายกว่า C
ฉันคุ้นเคยกับข้อเท็จจริงที่ว่าไวยากรณ์ของ C และ C ++ มีความละเอียดอ่อนตามบริบทและโดยเฉพาะอย่างยิ่งคุณต้องมี "lexer hack" ใน C ในทางกลับกันฉันรู้สึกว่าคุณสามารถแยกวิเคราะห์ Java ได้เพียง 2 โทเค็นแห่งการมองไปข้างหน้าแม้จะมีความคล้ายคลึงกันมากระหว่างสองภาษา คุณต้องเปลี่ยนแปลงอะไรเกี่ยวกับ C เพื่อให้สามารถแยกวิเคราะห์ได้ง่ายขึ้น ฉันถามเพราะตัวอย่างทั้งหมดที่ฉันเคยเห็นเกี่ยวกับความไวต่อบริบทของ C นั้นสามารถทำได้ในทางเทคนิค แต่ก็แปลกมาก ตัวอย่างเช่น, foo (a); อาจจะมีการเรียกฟังก์ชันโมฆะกับข้อโต้แย้งfoo aหรืออาจเป็นการประกาศว่าaเป็นวัตถุประเภทหนึ่งfooแต่คุณสามารถกำจัด parantheses ได้อย่างง่ายดาย ส่วนหนึ่งความแปลกนี้เกิดขึ้นเนื่องจากกฎการผลิต "ผู้ประกาศโดยตรง" สำหรับไวยากรณ์ Cตอบสนองวัตถุประสงค์สองประการในการประกาศทั้งฟังก์ชันและตัวแปร ในทางกลับกันไวยากรณ์ Javaมีกฎการผลิตแยกต่างหากสำหรับการประกาศตัวแปรและการประกาศฟังก์ชัน ถ้าคุณเขียน foo a; คุณจะรู้ว่ามันเป็นการประกาศตัวแปรและfooสามารถแยกวิเคราะห์เป็นชื่อประเภทได้อย่างชัดเจน นี่อาจไม่ใช่รหัสที่ถูกต้องหากfooไม่ได้กำหนดคลาสไว้ที่ใดที่หนึ่งในขอบเขตปัจจุบัน แต่นั่นเป็นงานสำหรับการวิเคราะห์เชิงความหมายที่สามารถดำเนินการได้ในคอมไพเลอร์พาสในภายหลัง ฉันเคยเห็นมันบอกว่า C นั้นยากที่จะแยกวิเคราะห์เนื่องจาก typedef แต่คุณสามารถประกาศประเภทของคุณเองใน Java ได้เช่นกัน กฎไวยากรณ์ภาษา C …
90 java  c  parsing  grammar 

6
โปรแกรมแยกวิเคราะห์ GCC และ Clang เขียนด้วยลายมือจริงหรือ
ดูเหมือนว่า GCC และ LLVM-Clang กำลังใช้ตัวแยกวิเคราะห์การสืบเชื้อสายแบบเรียกซ้ำที่เขียนด้วยลายมือและไม่ได้สร้างด้วยเครื่องโดยใช้ Bison-Flex การแยกวิเคราะห์จากล่างขึ้นบน ขอคนที่นี่ช่วยยืนยันว่าเป็นกรณีนี้ได้ไหม และถ้าเป็นเช่นนั้นเหตุใดเฟรมเวิร์กคอมไพเลอร์หลักจึงใช้ตัวแยกวิเคราะห์ที่เขียนด้วยลายมือ อัปเดต : บล็อกที่น่าสนใจในหัวข้อนี้ที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.