网上购物 货比三家
您现在的位置:快乐比价网 > 图书 > 计算机与网络 > 操作系统 > 商品详情

flex与bison(影印版)

分享到:
flex与bison(影印版)

最 低 价:¥36.50

定 价:¥0.00

作 者:John Levine

出 版 社:东南大学出版社

出版时间:2010 年1月

I S B N:9787564119324

价格
缺货
价格
36.50元
  • flex与bison
  • 送货上门
  • 价格
    38.20元
  • flex与bison
  • 送货上门
  • 价格
    40.50元
  • flex与bison-影印版
  • 送货上门
  • 价格
    40.50元
  • flex与bison
  • 送货上门
  • 价格
    40.50元
  • flex与bison-影印版
  • 送货上门
  • 价格
    40.50元
    价格
    41.40元

    商品详情

    编辑推荐

    《flex与bison》被期待已久,是经典O’Reilly系列书籍《lex & yacc》的续篇。
      如果你需要分析或处理Linux或Unix中的文本数据,这本有用的书籍就向你讲解了如何使用flex和bison迅速解决问题。

    内容简介

    如果你需要分析或处理linux或unix中的文本数据,这本有用的书籍就向你讲解了如何使用flex和bison迅速解决问题。《flex与bison》被期待已久,是经典o’reilly系列书籍《lex & yacc》的续篇。在原书出版以来的近20年中,flex和bison已被证明比原来的unix工具更可靠、更强大。
      《flex与bison》一书涵盖了linux和unix程序开发中相同的重要核心功能,以及一些重要的新主题。你会找到适用于新手的修订教程和适用于高级用户的参考资料,以及对每个程序的基本用法的解释,并且运用它们创建简单、独立的应用程序。有了《flex与bison》,你会发现这些灵活的工具提供的广泛用途。

    作者简介

    John Levine, Taughannock Networks的创始人,著有20余本技术书籍,其中包括《lex & yacc》和《qmail》,均为O’Reilly出版。
    .. << 查看详细

    目录

    preface
    1. introducing flex and bison
    lexical analysis and parsing
    regular expressions and scanning
    our first flex program
    programs in plain flex
    putting flex and bison together
    the scanner as coroutine
    tokens and values
    grammars and parsing
    bnf grammars
    bison’s rule input language
    compiling flex and bison programs together
    ambiguous grammars: not quite
    adding a few more rules
    flex and bison vs. handwritten scanners and parsers
    exercises
    2. using flex
    regular expressions
    regular expression examples
    .how flex handles ambiguous patterns
    context-dependent tokens
    file i/o in flex scanners
    reading several files
    the i/o structure of a flex scanner
    input to a flex scanner
    flex scanner output
    start states and nested input files
    symbol tables and a concordance generator
    managing symbol tables
    using a symbol table
    c language cross-reference
    exercises
    3. using bison
    how a bison parser matches its input
    shift/reduce parsing
    what bison’s lalr(1) parser cannot parse
    a bison parser
    abstract syntax trees
    an improved calculator that creates asts
    literal character tokens
    building the ast calculator
    shift/reduce conflicts and operator precedence
    when not to use precedence rules
    an advanced calculator
    advanced calculator parser
    calculator statement syntax
    calculator expression syntax
    top-level calculator grammar
    basic parser error recovery
    the advanced calculator lexer
    reserved words
    building and interpreting asts
    evaluating functions in the calculator
    user-defined functions
    using the advanced calculator
    exercises
    4. parsing sql
    a quick overview of sql
    relational databases
    manipulating relations
    three ways to use sql
    sql to rpn
    the lexer
    scanning sql keywords
    scanning numbers
    scanning operators and punctuation
    scanning functions and names
    comments and miscellany
    the parser
    the top-level parsing rules
    sql expressions
    select statements
    delete statement
    insert and replace statements
    update statement
    create database
    create table
    user variables
    the parser routines
    the makefile for the sql parser
    exercises
    5. a reference for flex specifications
    structure of a flex specification
    definition section
    rules section
    user subroutines
    begin
    c++ scanners
    context sensitivity
    left context
    right context
    definitions (substitutions)
    echo
    input management
    stdio file chaining
    input buffers
    input from strings
    file nesting
    input()
    yy_input
    flex library
    interactive and batch scanners
    line numbers and yylineno
    literal block
    multiple lexers in one program
    combined lexers
    multiple lexers
    options when building a scanner
    portability of flex lexers
    porting generated c lexers
    reentrant scanners
    extra data for reentrant scanners
    access to reentrant scanner data
    reentrant scanners, nested files, and multiple scanners
    using reentrant scanners with bison
    regular expression syntax
    metacharacters
    reject
    returning values from yylex()
    start states
    unput()
    yyinput() yyunput()
    yyleng
    yyless()
    yylex() and yy_decl
    yymore()
    yyrestart()
    yy_scan_string and yy_scan_buffer
    yy_user_action
    yywrap()
    6. a reference for bison specifications
    structure of a bison grammar
    symbols
    definition section
    rules section
    user subroutines section
    actions
    embedded actions
    symbol types for embedded actions
    ambiguity and conflicts
    types of conflicts
    shift/reduce conflicts
    reduce/reduce conflicts
    %expect
    glr parsers
    bugs in bison programs
    infinite recursion
    interchanging precedence
    embedded actions
    c++ parsers
    %code blocks
    end marker
    error token and error recovery
    %destructor
    inherited attributes ($0)
    symbol types for inherited attributes
    %initial-action
    lexical feedback
    literal block
    literal tokens
    locations
    %parse-param
    portability of bison parsers
    porting bison grammars
    porting generated c parsers
    libraries
    character codes
    precedence and associativity declarations
    precedence
    associativity
    precedence declarations
    using precedence and associativity to resolve conflicts
    typical uses of precedence
    recursive rules
    left and right recursion
    rules
    special characters
    %start declaration
    symbol values
    declaring symbol types
    explicit symbol types
    tokens
    token numbers
    token values
    %type declaration
    %union declaration
    variant and multiple grammars
    combined parsers
    multiple parsers
    using %name-prefix or the -p flag
    lexers for multiple parsers
    pure parsers
    y.output files
    bison library
    main()
    yyerror()
    yyabort
    yyaccept
    yybackup
    yyclearin
    yydebug and yydebug
    yydebug
    yydebug
    yyerrok
    yyerror
    yyerror()
    yyparse()
    yyrecovering()
    7. ambiguities and conflicts
    the pointer model and conflicts
    kinds of conflicts
    parser states
    contents of name.output
    reduce/reduce conflicts
    shift/reduce conflicts
    review of conflicts in name.output
    common examples of conflicts
    expression grammars
    if/then/else
    nested list grammar
    how do you fix the conflict?
    if/then/else (shift/reduce)
    loop within a loop (shift/reduce)
    expression precedence (shift/reduce)
    limited lookahead (shift/reduce or reduce/reduce)
    overlap of alternatives (reduce/reduce)
    summary
    exercises
    8. error reporting and recovery
    error reporting
    locations
    adding locations to the parser
    adding locations to the lexer
    more sophisticated locations with filenames
    error recovery
    bison error recovery
    freeing discarded symbols
    error recovery in interactive parsers
    where to put error tokens
    compiler error recovery
    exercises
    9. advanced flex and bison
    pure scanners and parsers
    pure scanners in flex
    pure parsers in bison
    using pure scanners and parsers together
    a reentrant calculator
    glr parsing
    glr version of the sql parser
    c++ parsers
    a c++ calculator
    c++ parser naming
    a c++ parser
    interfacing a scanner with a c++ parser
    should you write your parser in c++ ?
    exercises
    appendix: sql parser grammar and cross-reference
    glossary
    index

    商品评论(0条)

    暂无评论!

    您的浏览历史

    loading 内容加载中,请稍后...