2
0

CodeGen.cpp 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. #include "../Include/Common.h"
  35. #include "../Include/ShHandle.h"
  36. #include "../MachineIndependent/Versions.h"
  37. //
  38. // Here is where real machine specific high-level data would be defined.
  39. //
  40. class TGenericCompiler : public TCompiler {
  41. public:
  42. TGenericCompiler(EShLanguage l, int dOptions) : TCompiler(l, infoSink), debugOptions(dOptions) { }
  43. virtual bool compile(TIntermNode* root, int version = 0, EProfile profile = ENoProfile);
  44. TInfoSink infoSink;
  45. int debugOptions;
  46. };
  47. //
  48. // This function must be provided to create the actual
  49. // compile object used by higher level code. It returns
  50. // a subclass of TCompiler.
  51. //
  52. TCompiler* ConstructCompiler(EShLanguage language, int debugOptions)
  53. {
  54. return new TGenericCompiler(language, debugOptions);
  55. }
  56. //
  57. // Delete the compiler made by ConstructCompiler
  58. //
  59. void DeleteCompiler(TCompiler* compiler)
  60. {
  61. delete compiler;
  62. }
  63. //
  64. // Generate code from the given parse tree
  65. //
  66. bool TGenericCompiler::compile(TIntermNode* /*root*/, int /*version*/, EProfile /*profile*/)
  67. {
  68. haveValidObjectCode = true;
  69. return haveValidObjectCode;
  70. }