เป้าหมายของความท้าทายนี้คือการเขียนโปรแกรมที่แสดงกราฟการพึ่งพาในรูปแบบของต้นไม้ ในขณะที่ "กราฟการพึ่งพา" ในบริบทนี้ไม่มีอะไรมากไปกว่ากราฟกำกับ แต่วิธีการสร้างภาพที่อธิบายไว้ที่นี่ทำงานได้ดีที่สุดสำหรับกราฟที่อธิบายถึงความสัมพันธ์เชิงพึ่งพาบางประการ (เช่นแบบฝึกหัดหลังจากที่คุณอ่านความท้าทายแล้ว กราฟตัวอย่างและดูว่าผลลัพธ์มีประโยชน์หรือไม่)
การป้อนข้อมูลไปยังโปรแกรมประกอบด้วยหนึ่งหรือมากกว่าเป้าหมายนิยามซึ่งเป็นเส้นของรูปแบบ
Target DirectDependency1 DirectDependency2 ...
กำหนดเป้าหมายและการพึ่งพาโดยตรงที่เกี่ยวข้องหากมี เป้าหมายและการอ้างอิงของพวกเขาจะเรียกว่าวัตถุ ถ้าวัตถุปรากฏขึ้นเป็นการอ้างอิงเท่านั้นและไม่เป็นเป้าหมายวัตถุนั้นจะไม่มีการอ้างอิง ชุดของวัตถุทั้งหมดที่ปรากฏในการป้อนข้อมูลที่เรียกว่าΓ (ดูส่วนอินพุตและเอาต์พุตสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับรูปแบบอินพุต)
สำหรับวัตถุAและBใด ๆเราพูดว่า:
- Aขึ้นอยู่กับB (เทียบเท่า Aต้องการBโดยA ) ถ้า Aขึ้นอยู่กับ Bโดยตรงหรือถ้า Aขึ้นอยู่กับ B 'โดยตรงและ B'ขึ้นอยู่กับ Bสำหรับวัตถุ Bบางส่วน ;
- Aขึ้นอยู่กับBอย่างถูกต้อง (เทียบเท่า Aเป็นสิ่งจำเป็นโดยA ) ถ้า Aขึ้นอยู่กับ Bและ Bไม่ได้ขึ้นกับ A
เรากำหนดวัตถุที่ถูกประดิษฐ์ʀooᴛไม่ได้อยู่ในʀเช่นนั้น notoo not ไม่ได้ต้องการโดยตรงจากวัตถุใด ๆ และเช่นนั้นสำหรับวัตถุทั้งหมดA , ʀooᴛขึ้นอยู่กับAโดยตรงหากAอยู่ในΓและAไม่ใช่ วัตถุใด ๆ ที่จำเป็นต้องใช้อย่างเหมาะสมในΓ (ในคำอื่น ๆ ʀooᴛขึ้นอยู่กับAโดยตรงหากไม่มีวัตถุอื่นขึ้นอยู่กับAหรือถ้าวัตถุทั้งหมดที่ขึ้นอยู่กับAนั้นจำเป็นต้องใช้ด้วย A )
ต้นไม้เอาท์พุท
เราสร้างต้นไม้ที่มีโหนดรูตเป็นʀooᴛและเช่นนั้นลูกของแต่ละโหนดคือการพึ่งพาโดยตรง ตัวอย่างเช่นกำหนดอินพุต
Bread Dough Yeast
Dough Flour Water
Butter Milk
ต้นไม้ที่เกิดขึ้นคือ
หรือในรูปแบบ ASCII
ʀooᴛ
+-Bread
| +-Dough
| | +-Flour
| | +-Water
| +-Yeast
+-Butter
+-Milk
. เอาต์พุตของโปรแกรมเป็นแผนผังที่กำหนดไว้ด้านบนพิมพ์โดยไม่มีแผนผังที่โหนดʀooᴛ ตัวอย่างเช่นเอาต์พุตที่สอดคล้องกันสำหรับอินพุตด้านบนคือ
Bread
+-Dough
| +-Flour
| +-Water
+-Yeast
Butter
+-Milk
. คำอธิบายโดยละเอียดของโครงร่างของทรีเอาท์พุทจะได้รับภายหลัง
คำสั่งโหนด
โหนดลูกของโหนดแม่ที่กำหนดคือPควรเรียงลำดับเช่นนั้นสำหรับโหนดลูกทั้งหมดAและBของP , Aจะปรากฏขึ้นก่อนBถ้าหาก
- มีอยู่เด็กโหนดCของPเช่นว่าจะต้องถูกต้องโดยCและCนำหน้าหรือเท่ากับ, Bตามคำสั่งเดียวกัน; หรือ ,
- ตามลำดับตัวอักษรนำหน้าB (เพิ่มเติม preceisely, แจ๋วBโดยใช้การเปรียบเทียบ ASCII) และมีอยู่ไม่มีเด็กโหนดCของPเช่นว่าBเป็นสิ่งจำเป็นอย่างถูกต้องโดยCและCนำหน้าหรือเท่ากับ,ตามคำสั่งเดียวกัน .
(ผู้ที่กำลังมองหาความท้าทายทางคณิตศาสตร์อาจต้องการแสดงให้เห็นว่าความสัมพันธ์นี้ได้รับการกำหนดไว้อย่างดีและในความเป็นจริงนั้นเป็นคำสั่งที่เข้มงวดโดยสมบูรณ์อย่าลืมว่า fin นั้นมี จำกัด !)
ตัวอย่างเช่นกำหนดอินพุต
X D C B A
B D
C A
ผลลัพธ์ที่ควรจะเป็น
X
+-A
+-D
+-B
| +-D
+-C
+-A
.
A
ปรากฏขึ้นก่อนB
และB
ปรากฏก่อนC
เนื่องจากลำดับตัวอักษร;
D
ปรากฏก่อนB
เพราะมันถูกต้องโดยมันและหลังจากA
มันตามตัวอักษรตาม;
B
และC
ไม่ปรากฏมาก่อนD
แม้ว่าพวกเขาจะนำหน้ามันตามลำดับตัวอักษรเนื่องจากมีโหนดคือ,,, B
ที่ต้องการอย่างถูกต้องD
และที่เท่ากับB
(เช่นตัวเอง) และ preceeds C
ตามกฎเดียวกัน
ซ้ำ
วัตถุเดียวกันAอาจปรากฏขึ้นมากกว่าหนึ่งครั้งในเอาต์พุตหากตัวอย่างเช่นวัตถุมากกว่าหนึ่งวัตถุจำเป็นต้องใช้ ถ้าAไม่มีการพึ่งพาของตัวเองไม่จำเป็นต้องมีการจัดการพิเศษในกรณีนี้ มิฉะนั้นเพื่อลดการฟุ่มเฟื่อยของเอาต์พุตและเพื่อหลีกเลี่ยงการเรียกซ้ำแบบไม่สิ้นสุดเนื่องจากการพึ่งพาแบบวนรอบการพึ่งพาของAจะถูกแสดงรายการเฉพาะในเหตุการณ์แรกที่ไม่มีบรรพบุรุษใดเป็นพี่น้องของโหนดAอื่น เกิดขึ้นอื่น ๆ ของควรจะมีเด็กและควรปรากฏตามด้วยพื้นที่และจุดไข่ปลาในขณะที่A
...
ตัวอย่างเช่นกำหนดอินพุต
IP Ethernet
TCP IP
UDP IP
WebRTC TCP UDP
ผลลัพธ์ที่ควรจะเป็น
WebRTC
+-TCP
| +-IP
| +-Ethernet
+-UDP
+-IP ...
. เป็นอีกตัวอย่างหนึ่งที่มีทั้งการพิจารณาเป็นวงกลมและการพิจารณาเกี่ยวกับบรรพบุรุษ
Rock Scissors
Paper Rock
Scissors Paper
ควรส่งผลให้
Paper
+-Rock ...
Rock
+-Scissors ...
Scissors
+-Paper ...
. โปรดสังเกตว่าตัวอย่างเช่นเหตุการณ์ที่เกิดขึ้นครั้งแรกRock
ไม่ได้แสดงรายการการขึ้นต่อกันตั้งแต่พาเรนPaper
ต์เป็นพี่น้องของRock
โหนดอื่น พาเรนต์ของRock
โหนดที่สอง, ʀooᴛ (ซึ่งไม่ปรากฏในเอาท์พุท), ไม่ได้Rock
เป็นแบบพี่น้องดังนั้นการอ้างอิงของRock
มีการระบุไว้ในโหนดนี้
เค้าโครงต้นไม้ออก
ฉันแน่ใจว่าคุณได้รู้ว่าต้นไม้ควรถูกนำเสนอเป็นศิลปะ ASCII (และอย่าลังเลที่จะข้ามส่วนนี้หากคุณมี) แต่เพื่อความสมบูรณ์ ...
โหนดลูกของʀooᴛถูกพิมพ์บนบรรทัดที่แยกกันโดยไม่มีการย่อหน้าใด ๆ ตามลำดับ แต่ละโหนดจะตามด้วยลูกของมันทันทีหากมีพิมพ์ในรูปแบบเดียวกันซ้ำ ๆ โดยเยื้องไปทางขวาสองอักขระ สำหรับแต่ละโหนดที่มีชายด์บรรทัดแนวตั้งประกอบด้วย|
อักขระ (ไพพ์) ขยายออกจากอักขระโดยตรงใต้อักขระตัวแรกของโหนดจนกระทั่งแถวของโหนดชายน์สุดท้ายไม่รวมชายด์ของโหนดชายด์สุดท้าย หากการเยื้องของโหนดไม่ใช่ศูนย์มันจะถูกนำหน้าด้วย+-
(ในระดับการเยื้องเดียวกับพาเรนต์) เขียนทับเส้นแนวตั้งที่อธิบายไว้ข้างต้น
อินพุตและเอาต์พุต
คุณสามารถอ่านการป้อนข้อมูลผ่านSTDINหรือใช้วิธีการเทียบเท่า คุณอาจสมมติว่าไม่มีบรรทัดว่างเปล่าและคุณอาจต้องการให้บรรทัดสุดท้ายสิ้นสุดลงหรือไม่สิ้นสุดด้วยอักขระขึ้นบรรทัดใหม่ คุณอาจสันนิษฐานว่าชื่อวัตถุประกอบด้วยอักขระ ASCII ที่พิมพ์ได้ (ไม่รวมช่องว่าง) คุณอาจจะสมมติว่าวัตถุในการกำหนดเป้าหมายที่จะถูกแยกออกจากพื้นที่เดียวตัวอักษรและว่ามีไม่มีช่องว่างนำหน้าหรือต่อท้าย คุณอาจสมมติว่าแต่ละเป้าหมายถูกกำหนดอย่างมากที่สุดหนึ่งครั้งและไม่มีการทำซ้ำในรายการการพึ่งพา
คุณอาจจะเขียนออกไปSTDOUTหรือใช้วิธีการเทียบเท่า บรรทัดเอาต์พุตทั้งหมดยกเว้นที่ยาวที่สุดอาจมีช่องว่างต่อท้าย บรรทัดเอาต์พุตสุดท้ายอาจหรืออาจไม่ลงท้ายด้วยอักขระขึ้นบรรทัดใหม่
คะแนน
นี่คือรหัสกอล์ฟ คำตอบที่สั้นที่สุดในไบต์ชนะ
กรณีทดสอบ
โปรแกรมของคุณควรดำเนินการกรณีทดสอบต่อไปนี้ในเวลาที่เหมาะสม
อินพุต
Depender Dependee
Independent
เอาท์พุต
Depender
+-Dependee
Independent
อินพุต
Earth Turtle
Turtle Turtle
เอาท์พุต
Earth
+-Turtle
+-Turtle ...
อินพุต
F A C B D I
A B
B A C
D E H
C
G F
J H G C E I
E D
H D
I G
เอาท์พุต
J
+-C
+-E
| +-D
| +-E ...
| +-H ...
+-H
| +-D ...
+-G
| +-F
| +-C
| +-A
| | +-B ...
| +-B
| | +-C
| | +-A ...
| +-D ...
| +-I ...
+-I
+-G ...
แผนผังอารยธรรมเทคโนโลยี V
อินพุต
Pottery Agriculture
AnimalHusbandry Agriculture
Archery Agriculture
Mining Agriculture
Sailing Pottery
Calendar Pottery
Writing Pottery
Trapping AnimalHusbandry
TheWheel AnimalHusbandry
Masonry Mining
BronzeWorking Mining
Optics Sailing
Philosophy Writing
HorsebackRiding TheWheel
Mathematics TheWheel Archery
Construction Masonry
IronWorking BronzeWorking
Theology Calendar Philosophy
CivilService Philosophy Trapping
Currency Mathematics
Engineering Mathematics Construction
MetalCasting Construction IronWorking
Compass Optics
Education Theology CivilService
Chivalry CivilService HorsebackRiding Currency
Machinery Engineering
Physics Engineering MetalCasting
Steel MetalCasting
Astronomy Compass Education
Acoustics Education Chivalry
Banking Chivalry
PrintingPress Machinery Phyisics
Gunpowder Physics Steel
Navigation Astronomy
Economics Banking PrintingPress
Chemistry Gunpowder
Metallurgy Gunpowder
Archaeology Navigation
ScientificTheory Navigation Acoustics Economics
MilitaryScience Economics Chemistry
Fertilizer Chemistry
Rifling Metallurgy
Biology Archaeology ScientificTheory
SteamPower ScientificTheory MilitaryScience
Dynamite MilitaryScience Fertilizer Rifling
Electricity Biology SteamPower
ReplaceableParts SteamPower
Railroad SteamPower Dynamite
Refrigeration Electricity
Telegraph Electricity
Radio Electricity
Flight ReplaceableParts
Combustion ReplaceableParts Railroad
Penicillin Refrigeration
Plastics Refrigeration
Electronics Telegraph
MassMedia Radio
Radar Radio Flight Combustion
AtomicTheory Combustion
Ecology Penicillin Plastics
Computers Electronics MassMedia Radar
Rocketry Radar
Lasers Radar
NuclearFission AtomicTheory
Globalization Ecology Computers
Robotics Computers
Satellites Rocketry
Stealth Lasers
AdvancedBallistics Lasers NuclearFission
ParticlePhysics Robotics Satellites
NuclearFusion Satellites Stealth AdvancedBallistics
Nanotechnology ParticlePhysics
FutureTech Globalization Nanotechnology NuclearFusion
เอาท์พุต
FutureTech
+-Globalization
| +-Computers
| | +-Electronics
| | | +-Telegraph
| | | +-Electricity
| | | +-Biology
| | | | +-Archaeology
| | | | | +-Navigation
| | | | | +-Astronomy
| | | | | +-Compass
| | | | | | +-Optics
| | | | | | +-Sailing
| | | | | | +-Pottery
| | | | | | +-Agriculture
| | | | | +-Education
| | | | | +-CivilService
| | | | | | +-Philosophy
| | | | | | | +-Writing
| | | | | | | +-Pottery ...
| | | | | | +-Trapping
| | | | | | +-AnimalHusbandry
| | | | | | +-Agriculture
| | | | | +-Theology
| | | | | +-Calendar
| | | | | | +-Pottery ...
| | | | | +-Philosophy ...
| | | | +-ScientificTheory
| | | | +-Acoustics
| | | | | +-Chivalry
| | | | | | +-CivilService ...
| | | | | | +-Currency
| | | | | | | +-Mathematics
| | | | | | | +-Archery
| | | | | | | | +-Agriculture
| | | | | | | +-TheWheel
| | | | | | | +-AnimalHusbandry ...
| | | | | | +-HorsebackRiding
| | | | | | +-TheWheel ...
| | | | | +-Education ...
| | | | +-Economics
| | | | | +-Banking
| | | | | | +-Chivalry ...
| | | | | +-PrintingPress
| | | | | +-Machinery
| | | | | | +-Engineering
| | | | | | +-Construction
| | | | | | | +-Masonry
| | | | | | | +-Mining
| | | | | | | +-Agriculture
| | | | | | +-Mathematics ...
| | | | | +-Phyisics
| | | | +-Navigation ...
| | | +-SteamPower
| | | +-MilitaryScience
| | | | +-Chemistry
| | | | | +-Gunpowder
| | | | | +-Physics
| | | | | | +-Engineering ...
| | | | | | +-MetalCasting
| | | | | | +-Construction ...
| | | | | | +-IronWorking
| | | | | | +-BronzeWorking
| | | | | | +-Mining ...
| | | | | +-Steel
| | | | | +-MetalCasting ...
| | | | +-Economics ...
| | | +-ScientificTheory ...
| | +-MassMedia
| | | +-Radio
| | | +-Electricity ...
| | +-Radar
| | +-Combustion
| | | +-Railroad
| | | | +-Dynamite
| | | | | +-Fertilizer
| | | | | | +-Chemistry ...
| | | | | +-MilitaryScience ...
| | | | | +-Rifling
| | | | | +-Metallurgy
| | | | | +-Gunpowder ...
| | | | +-SteamPower ...
| | | +-ReplaceableParts
| | | +-SteamPower ...
| | +-Flight
| | | +-ReplaceableParts ...
| | +-Radio ...
| +-Ecology
| +-Penicillin
| | +-Refrigeration
| | +-Electricity ...
| +-Plastics
| +-Refrigeration ...
+-Nanotechnology
| +-ParticlePhysics
| +-Robotics
| | +-Computers ...
| +-Satellites
| +-Rocketry
| +-Radar ...
+-NuclearFusion
+-AdvancedBallistics
| +-Lasers
| | +-Radar ...
| +-NuclearFission
| +-AtomicTheory
| +-Combustion ...
+-Satellites ...
+-Stealth
+-Lasers ...
กราฟพึ่งพาแพคเกจ Cygwin syslog-ng
อินพุต
p11-kit-trust cygwin libtasn1_6
libtasn1_6 cygwin
libp11-kit0 cygwin libffi6 libintl8
libopenssl100 cygwin libgcc1 zlib0 ca-certificates
gsettings-desktop-schemas libglib2.0_0
p11-kit cygwin libp11-kit0 libtasn1_6
zlib0 libgcc1
libpcre1 cygwin
libfam0 gamin
shared-mime-info cygwin libglib2.0_0 libxml2
coreutils cygwin libattr1 libgcc1 libgmp10 libiconv2 libintl8 tzcode _update-info-dir
syslog-ng bash gawk libevtlog0 libgcc1 libglib2.0_0 libopenssl100 libpcre1 libwrap0 tzcode
libxml2 libiconv2 libreadline7 zlib0
cygwin base-cygwin
ca-certificates bash p11-kit p11-kit-trust cygwin
libintl8 cygwin libiconv2
libncursesw10 cygwin libgcc1 libstdc++6 terminfo
libstdc++6 libgcc1
bash coreutils cygwin libgcc1 libiconv2 libintl8 libncursesw10 libreadline7 _update-info-dir
libmpfr4 libgcc1 libgmp10
tzcode bash cygwin libgcc1
_update-info-dir cygwin
libreadline7 libncursesw10
gawk bash cygwin libgcc1 libgmp10 libintl8 libmpfr4 libreadline7
gamin libglib2.0_0
libglib2.0_0 libfam0 libffi6 libgcc1 libiconv2 libintl8 libpcre1 zlib0 gsettings-desktop-schemas shared-mime-info tzcode
เอาท์พุต
syslog-ng
+-libgcc1
+-bash
| +-cygwin
| | +-base-cygwin
| +-_update-info-dir
| | +-cygwin ...
| +-libgcc1
| +-libiconv2
| +-libintl8
| | +-cygwin ...
| | +-libiconv2
| +-libncursesw10
| | +-cygwin ...
| | +-libgcc1
| | +-libstdc++6
| | | +-libgcc1
| | +-terminfo
| +-libreadline7
| | +-libncursesw10 ...
| +-coreutils
| +-cygwin ...
| +-_update-info-dir ...
| +-libattr1
| +-libgcc1
| +-libgmp10
| +-libiconv2
| +-libintl8 ...
| +-tzcode ...
+-tzcode
| +-cygwin ...
| +-libgcc1
| +-bash ...
+-gawk
| +-cygwin ...
| +-libgcc1
| +-libgmp10
| +-libintl8 ...
| +-libreadline7 ...
| +-bash ...
| +-libmpfr4
| +-libgcc1
| +-libgmp10
+-libevtlog0
+-libpcre1
| +-cygwin ...
+-libglib2.0_0
| +-libffi6
| +-libgcc1
| +-libiconv2
| +-libintl8 ...
| +-libpcre1 ...
| +-tzcode ...
| +-zlib0
| | +-libgcc1
| +-gsettings-desktop-schemas
| | +-libglib2.0_0 ...
| +-libfam0
| | +-gamin
| | +-libglib2.0_0 ...
| +-shared-mime-info
| +-cygwin ...
| +-libxml2
| | +-libiconv2
| | +-libreadline7 ...
| | +-zlib0 ...
| +-libglib2.0_0 ...
+-libopenssl100
| +-cygwin ...
| +-libgcc1
| +-ca-certificates
| | +-cygwin ...
| | +-bash ...
| | +-p11-kit
| | | +-cygwin ...
| | | +-libp11-kit0
| | | | +-cygwin ...
| | | | +-libffi6
| | | | +-libintl8 ...
| | | +-libtasn1_6
| | | +-cygwin ...
| | +-p11-kit-trust
| | +-cygwin ...
| | +-libtasn1_6 ...
| +-zlib0 ...
+-libwrap0
GNU grep regex.c
กราฟการโทร
อินพุต
check_dst_limits_calc_pos_1 check_dst_limits_calc_pos_1
re_string_destruct
match_ctx_add_sublast
build_charclass bitset_set
match_ctx_init
rpl_re_set_syntax
link_nfa_nodes re_node_set_init_1 re_node_set_init_2
re_node_set_init_union re_node_set_init_copy
register_state re_node_set_insert_last re_node_set_alloc
rpl_re_search re_search_stub
re_node_set_init_2
re_search_2_stub re_search_stub
merge_state_array re_acquire_state re_node_set_init_union
calc_eclosure calc_eclosure_iter
create_token_tree
create_tree create_token_tree
pop_fail_stack
re_compile_fastmap_iter
rpl_regcomp rpl_re_compile_fastmap re_compile_internal
check_arrival_expand_ecl find_subexp_node check_arrival_expand_ecl_sub re_node_set_merge re_node_set_alloc
clean_state_log_if_needed extend_buffers
lower_subexps lower_subexp
duplicate_node re_dfa_add_node
re_node_set_merge
build_equiv_class bitset_set
create_initial_state re_acquire_state_context re_node_set_merge re_node_set_init_copy re_node_set_contains
rpl_regfree free_dfa_content
check_halt_state_context check_halt_node_context re_string_context_at
check_dst_limits search_cur_bkref_entry check_dst_limits_calc_pos
re_node_set_insert re_node_set_init_1
transit_state_bkref transit_state_bkref check_subexp_matching_top get_subexp re_string_context_at re_node_set_init_union re_acquire_state_context
get_subexp_sub match_ctx_add_entry clean_state_log_if_needed check_arrival
free_tree free_token
parse_reg_exp free_tree parse_branch fetch_token postorder create_tree
re_string_skip_chars
match_ctx_clean
re_copy_regs
parse_expression parse_dup_op parse_sub_exp build_charclass_op parse_expression init_word_char create_tree free_tree create_token_tree fetch_token parse_bracket_exp postorder
init_dfa
re_acquire_state_context calc_state_hash re_node_set_compare create_cd_newstate
re_node_set_add_intersect
merge_state_with_log transit_state_bkref check_subexp_matching_top re_acquire_state_context re_string_context_at re_node_set_init_union
free_fail_stack_return
check_subexp_limits sub_epsilon_src_nodes re_node_set_contains
build_charclass_op create_tree bitset_not bitset_set build_charclass create_token_tree bitset_mask free_charset
re_node_set_alloc
check_arrival_add_next_nodes check_node_accept_bytes re_acquire_state re_node_set_merge check_node_accept re_node_set_insert
check_node_accept_bytes re_string_char_size_at re_string_wchar_at re_string_elem_size_at
re_string_allocate re_string_construct_common re_string_realloc_buffers
lower_subexp create_tree
parse_branch parse_expression create_tree postorder free_tree
rpl_regexec re_search_internal
free_state
expand_bkref_cache re_node_set_init_1 re_node_set_insert search_cur_bkref_entry re_node_set_merge re_node_set_init_copy check_arrival_expand_ecl re_node_set_contains re_acquire_state
peek_token re_string_peek_byte_case re_string_wchar_at peek_token
re_string_construct build_wcs_upper_buffer re_string_construct_common build_upper_buffer re_string_translate_buffer re_string_realloc_buffers build_wcs_buffer
re_string_realloc_buffers
calc_inveclosure re_node_set_insert_last
sub_epsilon_src_nodes re_node_set_add_intersect re_node_set_contains re_node_set_remove_at
sift_ctx_init
re_string_fetch_byte_case re_string_char_size_at
find_recover_state merge_state_with_log
sift_states_iter_mb check_node_accept_bytes re_node_set_contains
group_nodes_into_DFAstates bitset_set_all bitset_copy bitset_set re_node_set_init_1 re_node_set_insert re_node_set_init_copy bitset_merge bitset_clear bitset_contain bitset_empty
push_fail_stack re_node_set_init_copy
check_node_accept bitset_contain re_string_context_at
match_ctx_free match_ctx_clean
build_wcs_upper_buffer
rpl_regerror
sift_states_backward re_node_set_init_1 update_cur_sifted_state build_sifted_states
build_sifted_states re_node_set_insert sift_states_iter_mb check_dst_limits check_node_accept re_node_set_contains
transit_state_mb check_node_accept_bytes re_acquire_state_context re_string_context_at re_node_set_init_union clean_state_log_if_needed
optimize_utf8
build_collating_symbol bitset_set
re_search_stub rpl_re_compile_fastmap re_search_internal re_copy_regs
check_matching merge_state_with_log find_recover_state re_acquire_state_context transit_state check_subexp_matching_top transit_state_bkref extend_buffers check_halt_state_context re_string_context_at
extend_buffers build_wcs_upper_buffer re_string_translate_buffer re_string_realloc_buffers build_wcs_buffer build_upper_buffer
check_arrival re_node_set_init_1 re_string_context_at expand_bkref_cache re_node_set_merge re_node_set_init_copy re_node_set_contains check_arrival_expand_ecl check_arrival_add_next_nodes re_acquire_state_context
free_workarea_compile
match_ctx_add_entry
parse_bracket_symbol re_string_fetch_byte_case
free_charset
build_trtable re_node_set_merge re_node_set_alloc group_nodes_into_DFAstates re_acquire_state_context bitset_merge bitset_contain bitset_empty
re_node_set_init_copy
duplicate_node_closure duplicate_node_closure re_node_set_insert duplicate_node search_duplicated_node
parse_bracket_exp build_equiv_class bitset_not bitset_set parse_bracket_element build_range_exp free_charset peek_token_bracket bitset_mask build_charclass create_tree build_collating_symbol create_token_tree
parse_bracket_element peek_token_bracket re_string_wchar_at parse_bracket_symbol re_string_char_size_at
re_search_internal re_string_destruct re_string_allocate match_ctx_init match_ctx_free check_matching check_halt_state_context re_string_reconstruct match_ctx_clean set_regs prune_impossible_nodes
set_regs free_fail_stack_return update_regs pop_fail_stack proceed_next_node
prune_impossible_nodes sift_ctx_init check_halt_state_context sift_states_backward merge_state_array
check_arrival_expand_ecl_sub re_node_set_insert re_node_set_contains check_arrival_expand_ecl_sub
re_acquire_state re_node_set_compare create_ci_newstate calc_state_hash
build_wcs_buffer
rpl_re_compile_pattern re_compile_internal
free_dfa_content free_token free_state
get_subexp match_ctx_add_sublast get_subexp_sub clean_state_log_if_needed extend_buffers search_cur_bkref_entry find_subexp_node check_arrival
analyze calc_first optimize_subexps postorder lower_subexps calc_eclosure preorder link_nfa_nodes calc_inveclosure calc_next
re_node_set_init_1
duplicate_tree create_token_tree
calc_eclosure_iter duplicate_node_closure calc_eclosure_iter re_node_set_alloc re_node_set_insert re_node_set_merge
bitset_empty
free_token free_charset
bitset_copy
parse_dup_op fetch_token mark_opt_subexp fetch_number create_tree postorder duplicate_tree free_tree
rpl_re_compile_fastmap re_compile_fastmap_iter
re_dfa_add_node
re_node_set_insert_last
sift_states_bkref re_node_set_remove_at sift_states_backward search_cur_bkref_entry re_node_set_insert check_dst_limits merge_state_array re_node_set_init_copy re_node_set_contains
fetch_number fetch_token
match_ctx_add_subtop
fetch_token peek_token
bitset_set_all
re_string_reconstruct build_wcs_buffer re_string_translate_buffer re_string_skip_chars bitset_contain build_upper_buffer build_wcs_upper_buffer re_string_context_at
rpl_re_match_2 re_search_2_stub
create_cd_newstate re_node_set_init_copy re_node_set_remove_at free_state register_state
check_subexp_matching_top match_ctx_add_subtop
proceed_next_node check_node_accept re_node_set_contains push_fail_stack check_node_accept_bytes re_node_set_insert
rpl_re_match re_search_stub
build_range_exp bitset_set
add_epsilon_src_nodes re_node_set_add_intersect re_node_set_merge re_acquire_state re_node_set_alloc
update_regs
rpl_re_search_2 re_search_2_stub
transit_state re_string_context_at build_trtable transit_state_mb
check_dst_limits_calc_pos check_dst_limits_calc_pos_1
build_upper_buffer
calc_first re_dfa_add_node
re_compile_internal optimize_utf8 re_string_destruct init_dfa free_workarea_compile parse create_initial_state analyze free_dfa_content re_string_construct
parse_sub_exp postorder create_tree fetch_token free_tree parse_reg_exp
re_string_context_at bitset_contain
init_word_char
create_ci_newstate register_state free_state re_node_set_init_copy
update_cur_sifted_state check_subexp_limits re_acquire_state sift_states_bkref add_epsilon_src_nodes
parse fetch_token create_tree parse_reg_exp
rpl_re_set_syntax
rpl_re_set_registers
rpl_regerror
เอาท์พุท (อ้าว! ยาวเกินกว่าที่ SE จะจัดการได้)