<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://jogamp.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://jogamp.org/bugzilla/"
          
          maintainer="sgothel@jausoft.com"
>

    <bug>
          <bug_id>1149</bug_id>
          
          <creation_ts>2015-03-23 04:04:31 +0100</creation_ts>
          <short_desc>Replacing PCPP w/ JCPP, allowing complete macro handling</short_desc>
          <delta_ts>2019-03-29 17:59:51 +0100</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Gluegen</product>
          <component>core</component>
          <version>2.3.1</version>
          <rep_platform>All</rep_platform>
          <op_sys>all</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>---</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>1116</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sven Gothel">sgothel</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          
          
          <cf_type>---</cf_type>
          <cf_scm_refs>gluegen b755b045fb7e3c8306f24dd645297992ab8db7f9
gluegen 88d51db39f3b00df1462eb0a18c1825ae1e86485
gluegen c8439e78c9e8ba4040bb723252a1c8fec00f904b
gluegen 4eab2908f5344a330ff18bdf7b168f136d87781a
gluegen d30a3ea54e26978d6ff199cba0fd79c5c0cef483
gluegen 32ca07fc21d1af2034c1788b6317ee14e1354d15
gluegen 3dc82b104cf69db890328ff1ffd165474c4a4d59
jcpp de373ebf98385dae3fcbd191c77b9b62b3466403
   - ff2b708f8cb716a179f2de534c1694fce9434243
jogl 590b5bed36622933f452caf1db18b4dd16a75669</cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>4663</commentid>
    <comment_count>0</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2015-03-23 04:04:31 +0100</bug_when>
    <thetext>JCPP allows recursive macro replacement and handles (all?) macro operations.

This is at least required for constructs like:
  #if defined(LALA) &amp;&amp; ( GCC_VERSION + 1 ) &gt; 400

however, recursive macro replacement also allows us to 
treat results as constants and emit them, e.g.:
  #define ONE 1
  #define NUMBER_FOUR ( ( ONE + ONE ) * ( ONE + ONE ) )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4666</commentid>
    <comment_count>1</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2015-03-23 13:28:40 +0100</bug_when>
    <thetext>JCPP orig http://www.anarres.org/projects/jcpp/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4677</commentid>
    <comment_count>2</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2015-03-26 21:56:11 +0100</bug_when>
    <thetext>JCPP:
=====
  - New git sub-module: &apos;jcpp&apos;

commits de373ebf98385dae3fcbd191c77b9b62b3466403
      - ff2b708f8cb716a179f2de534c1694fce9434243:

  - Make it a GlueGen sub-module, w/o other dependencies
  - Expose expanded non-functional Macros for GlueGen

GlueGen:
=========
b755b045fb7e3c8306f24dd645297992ab8db7f9
  Part-1: Cleanup / Preparation

88d51db39f3b00df1462eb0a18c1825ae1e86485
  Part-2: JCPP submodule, build, test and doc

c8439e78c9e8ba4040bb723252a1c8fec00f904b
  Replacing PCPP w/ JCPP: Name used CPP impl.

4eab2908f5344a330ff18bdf7b168f136d87781a
  Replacing PCPP w/ JCPP

d30a3ea54e26978d6ff199cba0fd79c5c0cef483
  Fix parsing of hexadecimal w/ binary exponent floats 
  in regexp-constant and java-parser. (Due to PCPP -&gt; JCPP)
    
    Lack of parsing binary exponent floats is exposed due to using JCPP
    and correct constant-definitions.
    
    - JavaParser.g:
      - Add support for hexadecimal w/ binary exponent floats
      - TAB -&gt; 4 spaces
    
    - ConstantDefinition.java:
      - Add RegExp &apos;fpRegexp&apos;, patternDecimalNumber:
          decimal number w/ support for hexadecimal w/ binary exponent floats.
    
      - isDecimalNumber(..): Use patternDecimalNumber
        instead of try-and-error (NumberFormatException)
    
      - patternCPPOperand: exclude patternDecimalNumber!
    
    - JavaEmitter.java:
      - Respect explicit suffix [dD] for double type.
      - Drop floating point suffixes [fF]
    
    - Test: Added tests for hexadecimal w/ binary exponent floats

32ca07fc21d1af2034c1788b6317ee14e1354d15
  Fix JCPP test case IncludeAbsoluteTest

3dc82b104cf69db890328ff1ffd165474c4a4d59
  Add JCPP Apache 2.0 License to LICENSE.txt file

JOGL
=====
590b5bed36622933f452caf1db18b4dd16a75669
   Update HowToBuild.html</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>