コード例 #1
0
def renderSpecialOperations(out, members):
    stringifier = None
    getter_operations = []

    for member in members:
        if isinstance(member, pywidl.Attribute) and member.stringifier:
            assert (not stringifier)
            stringifier = member

        if isinstance(member, pywidl.Operation):
            assert (not member.setter)
            assert (not member.creator)
            assert (not member.deleter)
            assert (not member.legacycaller)
            assert (not member.stringifier)

            if member.getter: getter_operations.append(member)

    if stringifier:
        print >> out
        print >> out, "    operator const char *();"

    if getter_operations:
        print >> out
        for operation in getter_operations:
            assert (len(operation.arguments) == 1)
            print >>out, "    %s %s;" % ( \
              emitType(operation.return_type),
              getterOperationSignature(operation))

            if stringifier \
            and isStringType(operation.return_type) \
            and isNumeralArgument(operation.arguments[0]):
                print >>out, "    const char * operator[](int %s) const;" % \
                  operation.arguments[0].name
コード例 #2
0
ファイル: HPPEmitter.py プロジェクト: VasilyStepanov/libcssom
def renderSpecialOperations(out, members):
  stringifier = None
  getter_operations = []

  for member in members:
    if isinstance(member, pywidl.Attribute) and member.stringifier:
      assert(not stringifier)
      stringifier = member

    if isinstance(member, pywidl.Operation):
      assert(not member.setter)
      assert(not member.creator)
      assert(not member.deleter)
      assert(not member.legacycaller)
      assert(not member.stringifier)

      if member.getter: getter_operations.append(member)

  if stringifier:
    print >>out
    print >>out, "    operator const char *();"

  if getter_operations:
    print >>out
    for operation in getter_operations:
      assert(len(operation.arguments) == 1)
      print >>out, "    %s %s;" % ( \
        emitType(operation.return_type),
        getterOperationSignature(operation))

      if stringifier \
      and isStringType(operation.return_type) \
      and isNumeralArgument(operation.arguments[0]):
        print >>out, "    const char * operator[](int %s) const;" % \
          operation.arguments[0].name
コード例 #3
0
def renderOperation(out, operation):
    assert (not operation.extended_attributes)
    assert (not operation.stringifier)
    assert (not operation.static)
    assert (not operation.setter)
    assert (not operation.creator)
    assert (not operation.deleter)
    assert (not operation.legacycaller)

    print >>out, "    %s %s;" % ( \
      emitType(operation.return_type),
      operationSignature(operation))
コード例 #4
0
ファイル: HPPEmitter.py プロジェクト: VasilyStepanov/libcssom
def renderOperation(out, operation):
  assert(not operation.extended_attributes)
  assert(not operation.stringifier)
  assert(not operation.static)
  assert(not operation.setter)
  assert(not operation.creator)
  assert(not operation.deleter)
  assert(not operation.legacycaller)

  print >>out, "    %s %s;" % ( \
    emitType(operation.return_type),
    operationSignature(operation))
コード例 #5
0
ファイル: HPPEmitter.py プロジェクト: VasilyStepanov/libcssom
def renderAttribute(out, interface, attribute, definitions):
  assert(not attribute.inherit)

  print >>out, "    %s %s;" % ( \
    emitType(attribute.type),
    attributeGetterSignature(attribute))
  if not attribute.readonly:
    print >>out, "    void %s;" % attributeSetterSignature(attribute)

  forwarded_attribute = attributeExtendedAttributes(attribute, definitions)
  if forwarded_attribute:
    print >>out
    print >>out, "    void %s;" % attributeSetterSignature(forwarded_attribute)
コード例 #6
0
def renderAttribute(out, interface, attribute, definitions):
    assert (not attribute.inherit)

    print >>out, "    %s %s;" % ( \
      emitType(attribute.type),
      attributeGetterSignature(attribute))
    if not attribute.readonly:
        print >> out, "    void %s;" % attributeSetterSignature(attribute)

    forwarded_attribute = attributeExtendedAttributes(attribute, definitions)
    if forwarded_attribute:
        print >> out
        print >> out, "    void %s;" % attributeSetterSignature(
            forwarded_attribute)
コード例 #7
0
def renderConst(out, const):
    assert (not const.extended_attributes)

    print >>out, "    static %s %s;" % ( \
      emitType(const.type),
      const.name)
コード例 #8
0
def renderTypedef(out, typedef):
    assert (not typedef.extended_attributes)
    assert (not typedef.type_extended_attributes)

    print >> out, "typedef %s %s;" % (emitType(typedef.type), typedef.name)
コード例 #9
0
ファイル: HPPEmitter.py プロジェクト: VasilyStepanov/libcssom
def renderConst(out, const):
  assert(not const.extended_attributes)

  print >>out, "    static %s %s;" % ( \
    emitType(const.type),
    const.name)
コード例 #10
0
ファイル: HPPEmitter.py プロジェクト: VasilyStepanov/libcssom
def renderTypedef(out, typedef):
  assert(not typedef.extended_attributes)
  assert(not typedef.type_extended_attributes)

  print >>out, "typedef %s %s;" % (emitType(typedef.type), typedef.name)