دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: John R. Levine
سری:
ISBN (شابک) : 9780596155971
ناشر: O’Reilly
سال نشر: 2009
تعداد صفحات: 276
زبان: english
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 1 مگابایت
در صورت تبدیل فایل کتاب flex & bison به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب فلکس و بیسون نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
اگر نیاز به تجزیه یا پردازش داده های متنی در لینوکس یا یونیکس دارید، این کتاب مفید نحوه استفاده از flex و bison را برای حل سریع مشکلات خود توضیح می دهد. flex & bison دنبالهای برای کتاب کلاسیک O'Reilly، lex & yacc است. در نزدیک به دو دهه پس از انتشار کتاب اصلی، ابزارهای flex و bison ثابت کردهاند که قابل اعتمادتر و قدرتمندتر از ابزارهای اصلی یونیکس هستند. flex & bison همان عملکرد اصلی حیاتی برای توسعه برنامه لینوکس و یونیکس را به همراه چندین موضوع جدید مهم پوشش می دهد. آموزش های اصلاح شده برای مبتدیان و مراجع برای کاربران پیشرفته و همچنین توضیحی در مورد استفاده اولیه هر ابزار و برنامه های ساده و مستقلی که می توانید با آنها ایجاد کنید، پیدا خواهید کرد. با flex & bison، طیف گسترده ای از کاربردهای این ابزارهای انعطاف پذیر را کشف خواهید کرد. خطاب به سختی نحو که ابزارهای عبارات منظم نمی توانند از عهده آن برآیند، کامپایلرها و مفسرها را بسازید، و طیف وسیعی از توابع پردازش متن را مدیریت کنید. تفسیر کد، فایل های پیکربندی، یا هر قالب ساختاریافته دیگری تکنیک های برنامه نویسی کلیدی، از جمله درخت های نحو انتزاعی و جداول نماد را پیاده سازی کنید. گرامر کامل SQL-با کد نمونه کامل استفاده از ویژگیهای جدید مانند lexers و تجزیهکننده خالص (reentrant)، تجزیهکنندههای قدرتمند GLR و رابطهای C++
If you need to parse or process text data in Linux or Unix, this useful book explains how to use flex and bison to solve your problems quickly. flex & bison is the long-awaited sequel to the classic O'Reilly book, lex & yacc. In the nearly two decades since the original book was published, the flex and bison utilities have proven to be more reliable and more powerful than the original Unix tools. flex & bison covers the same core functionality vital to Linux and Unix program development, along with several important new topics. You'll find revised tutorials for novices and references for advanced users, as well as an explanation of each utility's basic usage and simple, standalone applications you can create with them. With flex & bison, you'll discover the wide range of uses these flexible tools offer. Address syntax crunching that regular expressions tools can't handle Build compilers and interpreters, and handle a wide range of text processing functions Interpret code, configuration files, or any other structured format Learn key programming techniques, including abstract syntax trees and symbol tables Implement a full SQL grammar-with complete sample code Use new features such as pure (reentrant) lexers and parsers, powerful GLR parsers, and interfaces to C++
Table of Contents......Page 7
Scope of This Book......Page 15
Conventions Used in This Book......Page 16
This Book’s Example Files......Page 17
How to Contact Us......Page 18
Acknowledgments......Page 19
Lexical Analysis and Parsing......Page 21
Our First Flex Program......Page 22
Programs in Plain Flex......Page 24
Putting Flex and Bison Together......Page 25
The Scanner as Coroutine......Page 26
Tokens and Values......Page 27
Grammars and Parsing......Page 29
BNF Grammars......Page 30
Bison’s Rule Input Language......Page 31
Compiling Flex and Bison Programs Together......Page 33
Ambiguous Grammars: Not Quite......Page 34
Adding a Few More Rules......Page 35
Flex and Bison vs. Handwritten Scanners and Parsers......Page 36
Exercises......Page 37
Regular Expressions......Page 39
Regular Expression Examples......Page 41
Context-Dependent Tokens......Page 42
File I/O in Flex Scanners......Page 43
Reading Several Files......Page 44
The I/O Structure of a Flex Scanner......Page 45
Input to a Flex Scanner......Page 46
Flex Scanner Output......Page 47
Start States and Nested Input Files......Page 48
Managing Symbol Tables......Page 52
Using a Symbol Table......Page 55
C Language Cross-Reference......Page 58
Exercises......Page 65
How a Bison Parser Matches Its Input......Page 67
Shift/Reduce Parsing......Page 68
What Bison’s LALR(1) Parser Cannot Parse......Page 70
Abstract Syntax Trees......Page 71
An Improved Calculator That Creates ASTs......Page 72
Literal Character Tokens......Page 74
Building the AST Calculator......Page 77
Shift/Reduce Conflicts and Operator Precedence......Page 78
When Not to Use Precedence Rules......Page 80
An Advanced Calculator......Page 81
Advanced Calculator Parser......Page 84
Calculator Statement Syntax......Page 85
Calculator Expression Syntax......Page 86
Basic Parser Error Recovery......Page 87
The Advanced Calculator Lexer......Page 88
Reserved Words......Page 89
Building and Interpreting ASTs......Page 90
User-Defined Functions......Page 96
Exercises......Page 99
A Quick Overview of SQL......Page 101
Relational Databases......Page 102
Three Ways to Use SQL......Page 103
SQL to RPN......Page 104
The Lexer......Page 105
Scanning SQL Keywords......Page 106
Scanning Numbers......Page 110
Scanning Operators and Punctuation......Page 111
Scanning Functions and Names......Page 112
Comments and Miscellany......Page 113
The Parser......Page 114
SQL Expressions......Page 116
Functions......Page 119
Other expressions......Page 120
Select Statements......Page 121
Select options and table references......Page 122
SELECT table references......Page 123
Delete Statement......Page 126
Insert and Replace Statements......Page 127
Replace statement......Page 129
Create Database......Page 130
Create Table......Page 131
User Variables......Page 134
The Parser Routines......Page 135
The Makefile for the SQL Parser......Page 136
Exercises......Page 137
Definition Section......Page 139
BEGIN......Page 140
Left Context......Page 141
Definitions (Substitutions)......Page 142
Input Buffers......Page 143
File Nesting......Page 144
Flex Library......Page 145
Literal Block......Page 146
Combined Lexers......Page 147
Multiple Lexers......Page 148
Character sets......Page 149
Extra Data for Reentrant Scanners......Page 150
Reentrant Scanners, Nested Files, and Multiple Scanners......Page 151
Metacharacters......Page 152
Returning Values from yylex()......Page 155
Start States......Page 156
yyless()......Page 157
yylex() and YY_DECL......Page 158
yywrap()......Page 159
Symbols......Page 161
Actions......Page 162
Embedded Actions......Page 163
Shift/Reduce Conflicts......Page 164
GLR Parsers......Page 165
Embedded Actions......Page 166
Error Token and Error Recovery......Page 167
Inherited Attributes ($0)......Page 168
%initial-action......Page 169
Lexical Feedback......Page 170
Literal Tokens......Page 171
%parse-param......Page 172
Character Codes......Page 173
Precedence Declarations......Page 174
Recursive Rules......Page 175
Left and Right Recursion......Page 176
Rules......Page 177
Special Characters......Page 178
%start Declaration......Page 179
Explicit Symbol Types......Page 180
Token Values......Page 181
%type Declaration......Page 182
Combined Parsers......Page 183
Pure Parsers......Page 185
y.output Files......Page 186
yyerror()......Page 187
YYBACKUP......Page 188
yyerrok......Page 189
yyerror()......Page 190
YYRECOVERING()......Page 191
The Pointer Model and Conflicts......Page 193
Kinds of Conflicts......Page 195
Parser States......Page 196
Reduce/Reduce Conflicts......Page 198
Shift/Reduce Conflicts......Page 200
Review of Conflicts in name.output......Page 202
Expression Grammars......Page 203
IF/THEN/ELSE......Page 205
Nested List Grammar......Page 206
How Do You Fix the Conflict?......Page 207
IF/THEN/ELSE (Shift/Reduce)......Page 208
Loop Within a Loop (Shift/Reduce)......Page 210
Limited Lookahead (Shift/Reduce or Reduce/Reduce)......Page 211
Overlap of Alternatives (Reduce/Reduce)......Page 212
Exercises......Page 214
Error Reporting......Page 217
Locations......Page 219
Adding Locations to the Parser......Page 220
Adding Locations to the Lexer......Page 221
More Sophisticated Locations with Filenames......Page 222
Error Recovery......Page 224
Bison Error Recovery......Page 225
Error Recovery in Interactive Parsers......Page 226
Where to Put Error Tokens......Page 227
Exercises......Page 228
Pure Scanners and Parsers......Page 229
Pure Scanners in Flex......Page 230
Pure Parsers in Bison......Page 232
Using Pure Scanners and Parsers Together......Page 233
A Reentrant Calculator......Page 234
GLR Parsing......Page 250
GLR Version of the SQL Parser......Page 251
C++ Parsers......Page 254
C++ Parser Naming......Page 255
A C++ Parser......Page 256
Interfacing a Scanner with a C++ Parser......Page 259
Exercises......Page 261
Appendix. SQL Parser Grammar and Cross-Reference......Page 263
Glossary......Page 279
Index......Page 283