Browse Source

ig-c99: add idlparam_to_cparam() - implement parameter mode/type mapping as defined in lms-c99

main
heck 2 years ago
parent
commit
fd7ae1aed6
  1. 33
      lm-c99/ig-c99.ysl2

33
lm-c99/ig-c99.ysl2

@ -267,7 +267,38 @@ tstylesheet {
def "func:idlparam_to_cparam" { def "func:idlparam_to_cparam" {
param "idltype"; param "idltype";
param "mode"; param "mode";
result "'sfd'"; const "typeclass", "func:ig_c99_typeclass($idltype)";
choose {
when "$mode = 'borrow'"
choose {
when "$typeclass = 'primitive'"
result > «$idltype»
when "$typeclass = 'object'"
result > «$idltype»
}
when "$mode = 'mborrow'"
choose {
when "$typeclass = 'primitive'"
result > «$idltype»*
when "$typeclass = 'object'"
result > «$idltype»*
}
when "$mode = 'claim'"
choose {
when "$typeclass = 'primitive'"
error > invalid mode «$mode» for typeclass «$typeclass»
when "$typeclass = 'object'"
result > «$idltype»
}
when "$mode = 'provide'"
choose {
when "$typeclass = 'primitive'"
error > invalid mode «$mode» for typeclass «$typeclass»
when "$typeclass = 'object'"
result > «$idltype»*
}
}
} }

Loading…
Cancel
Save