Home | History | Annotate | Download | only in GenericCodeGen
      1 //
      2 //Copyright (C) 2002-2005  3Dlabs Inc. Ltd.
      3 //All rights reserved.
      4 //
      5 //Redistribution and use in source and binary forms, with or without
      6 //modification, are permitted provided that the following conditions
      7 //are met:
      8 //
      9 //    Redistributions of source code must retain the above copyright
     10 //    notice, this list of conditions and the following disclaimer.
     11 //
     12 //    Redistributions in binary form must reproduce the above
     13 //    copyright notice, this list of conditions and the following
     14 //    disclaimer in the documentation and/or other materials provided
     15 //    with the distribution.
     16 //
     17 //    Neither the name of 3Dlabs Inc. Ltd. nor the names of its
     18 //    contributors may be used to endorse or promote products derived
     19 //    from this software without specific prior written permission.
     20 //
     21 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     22 //"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     23 //LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     24 //FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     25 //COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
     26 //INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
     27 //BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     28 //LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     29 //CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     30 //LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     31 //ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     32 //POSSIBILITY OF SUCH DAMAGE.
     33 //
     34 
     35 #include "../Include/Common.h"
     36 #include "../Include/ShHandle.h"
     37 #include "../MachineIndependent/Versions.h"
     38 
     39 //
     40 // Here is where real machine specific high-level data would be defined.
     41 //
     42 class TGenericCompiler : public TCompiler {
     43 public:
     44     TGenericCompiler(EShLanguage l, int dOptions) : TCompiler(l, infoSink), debugOptions(dOptions) { }
     45     virtual bool compile(TIntermNode* root, int version = 0, EProfile profile = ENoProfile);
     46     TInfoSink infoSink;
     47     int debugOptions;
     48 };
     49 
     50 //
     51 // This function must be provided to create the actual
     52 // compile object used by higher level code.  It returns
     53 // a subclass of TCompiler.
     54 //
     55 TCompiler* ConstructCompiler(EShLanguage language, int debugOptions)
     56 {
     57     return new TGenericCompiler(language, debugOptions);
     58 }
     59 
     60 //
     61 // Delete the compiler made by ConstructCompiler
     62 //
     63 void DeleteCompiler(TCompiler* compiler)
     64 {
     65     delete compiler;
     66 }
     67 
     68 //
     69 //  Generate code from the given parse tree
     70 //
     71 bool TGenericCompiler::compile(TIntermNode* /*root*/, int /*version*/, EProfile /*profile*/)
     72 {
     73     haveValidObjectCode = true;
     74 
     75     return haveValidObjectCode;
     76 }
     77