Edit

kc3-lang/angle/src/compiler/preprocessor/new/generate_parser.sh

Branch :

  • Show log

    Commit

  • Author : alokp@chromium.org
    Date : 2012-05-16 19:24:07
    Hash : 04d7d22b
    Message : Reafactored Lexer class to allow chaining. The full chain when parsing #if directive looks like this: Preprocessor -> MacroExpander -> DirectiveHandler -> MacroExpander -> DefinedFilter -> Tokenizer. This chain dynamically changes depending on the current context. Also added an incomplete implementation of #if handling and ExpressionParser to illustrate how this design is supposed to work. Review URL: https://codereview.appspot.com/6203060 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1084 736b8ea6-26fd-11df-bfd4-992fa37f6226

  • src/compiler/preprocessor/new/generate_parser.sh
  • #!/bin/bash
    # Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
    # Use of this source code is governed by a BSD-style license that can be
    # found in the LICENSE file.
    
    # Generates various components of GLSL ES preprocessor.
    
    run_flex()
    {
    input_file=$script_dir/$1
    output_source=$script_dir/$2
    flex --noline --nounistd --outfile=$output_source $input_file
    }
    
    run_bison()
    {
    input_file=$script_dir/$1
    output_source=$script_dir/$2
    bison --no-lines --skeleton=yacc.c --output=$output_source $input_file
    }
    
    script_dir=$(dirname $0)
    
    # Generate preprocessor
    run_flex Tokenizer.l Tokenizer.cpp
    run_bison ExpressionParser.y ExpressionParser.cpp