Cface__CLongNode.st
changeset 5 c110eef5b9ef
parent 2 cfd2c393abfe
child 9 03c7a764d2be
equal deleted inserted replaced
4:fc74bd43a3eb 5:c110eef5b9ef
    10 !
    10 !
    11 
    11 
    12 
    12 
    13 !CLongNode methodsFor:'accessing'!
    13 !CLongNode methodsFor:'accessing'!
    14 
    14 
       
    15 cByteSize
       
    16 
       
    17     self isCLongIntNode 
       
    18         ifTrue:[^self cLongIntByteSize].
       
    19 
       
    20     self isCLongIntNode 
       
    21         ifTrue:[^self cLongLongIntByteSize].
       
    22 
       
    23     self error:'Cannot happen...I hope :-)'
       
    24 
       
    25     "Created: / 09-07-2008 / 19:43:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
       
    26 !
       
    27 
       
    28 cLongIntByteSize
       
    29 
       
    30     "
       
    31         Cface::CLongNode new cLongIntByteSize       
       
    32     "
       
    33 
       
    34     %{
       
    35         return __MKSMALLINT(sizeof(long int));
       
    36     %}.
       
    37     ^4
       
    38 
       
    39     "Created: / 09-07-2008 / 19:44:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
       
    40 !
       
    41 
       
    42 cLongLongIntByteSize
       
    43 
       
    44     "
       
    45         Cface::CLongNode new cLongLongIntByteSize         
       
    46     "
       
    47 
       
    48     %{
       
    49         return __MKSMALLINT(sizeof(long long int));
       
    50     %}.
       
    51     ^8
       
    52 
       
    53     "Created: / 09-07-2008 / 19:44:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
       
    54 !
       
    55 
    15 ffiTypeSymbol
    56 ffiTypeSymbol
    16     "Superclass Cface::CModifierNode says that I am responsible to implement this method"
    57     "Superclass Cface::CModifierNode says that I am responsible to implement this method"
    17 
    58 
    18     ^#int32
    59     ^#int32
    19 
    60 
    20     "Created: / 03-07-2008 / 23:02:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
    61     "Created: / 03-07-2008 / 23:02:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
       
    62 !
       
    63 
       
    64 smalltalkxValueExtractionSelector
       
    65 
       
    66     self isCLongIntNode ifTrue:[^#longAt:].
       
    67     self isCLongLongIntNode ifTrue:[^#longLongAt:].
       
    68     ^type smalltalkxValueExtractionSelector
       
    69 
       
    70     "Created: / 09-07-2008 / 22:23:32 / Jan Vrany <vranyj1@fel.cvut.cz>"
    21 ! !
    71 ! !
    22 
    72 
    23 !CLongNode methodsFor:'printing'!
    73 !CLongNode methodsFor:'printing'!
    24 
    74 
    25 printOn: stream indent: indent
    75 printOn: stream indent: indent
    33 
    83 
    34     "Created: / 04-03-2008 / 10:57:12 / janfrog"
    84     "Created: / 04-03-2008 / 10:57:12 / janfrog"
    35 ! !
    85 ! !
    36 
    86 
    37 !CLongNode methodsFor:'testing'!
    87 !CLongNode methodsFor:'testing'!
       
    88 
       
    89 isCLongIntNode
       
    90 
       
    91     ^type isCIntNode
       
    92 
       
    93     "Created: / 09-07-2008 / 19:42:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
       
    94 !
       
    95 
       
    96 isCLongLongIntNode
       
    97 
       
    98     ^type isCLongIntNode
       
    99 
       
   100     "Created: / 09-07-2008 / 19:42:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
       
   101 !
    38 
   102 
    39 isCLongNode
   103 isCLongNode
    40     ^ true
   104     ^ true
    41 
   105 
    42     "Created: / 17-02-2008 / 21:52:38 / janfrog"
   106     "Created: / 17-02-2008 / 21:52:38 / janfrog"