
3 changed files with 146 additions and 0 deletions
@ -0,0 +1,30 @@ |
|||
YML_PATH+=:../../../idl |
|||
COMPILER=../../ig-c99.ysl2 |
|||
BUILD_DIR=ig-c99 |
|||
|
|||
SRC=$(wildcard *.yml2) |
|||
SRC_XML=$(addsuffix .xml, $(basename $(SRC))) |
|||
|
|||
|
|||
.PHONY: all xml compile clean |
|||
all: xml compile |
|||
|
|||
compile: $(BUILD_DIR)/* |
|||
|
|||
xml: $(SRC_XML) |
|||
|
|||
$(BUILD_DIR)/*: $(BUILD_DIR) $(SRC) $(COMPILER) |
|||
YML_PATH=$(YML_PATH) yml2proc -y $(COMPILER) $(SRC) |
|||
diff $(BUILD_DIR)/test_api.h $(BUILD_DIR)/test_api.h.target |
|||
|
|||
$(BUILD_DIR): |
|||
mkdir $(BUILD_DIR) |
|||
|
|||
%.xml: %.yml2 |
|||
YML_PATH=$(YML_PATH) yml2proc -P $< -o $@ |
|||
|
|||
|
|||
clean: |
|||
rm -rf \
|
|||
./$(BUILD_DIR)/*.h \
|
|||
$(SRC_XML) |
@ -0,0 +1,61 @@ |
|||
// IG_C99 1.0 |
|||
// test_api.h |
|||
// License text |
|||
// Copyleft text |
|||
#pragma once |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
#include "idl_core.h" |
|||
|
|||
// deftypes |
|||
// -------- |
|||
|
|||
// Enums |
|||
// ----- |
|||
typedef enum _IG_C99_GOOD { |
|||
IG_C99_GOOD_ITEM1 // oneline doc |
|||
IG_C99_GOOD_ITEM2 |
|||
|
|||
// item 3 |
|||
// ------ |
|||
// multiline |
|||
// doc |
|||
IG_C99_GOOD_ITEM3 |
|||
} IG_C99_GOOD; |
|||
|
|||
typedef enum _IG_C99_DOC_BADLY_FORMATTTED { |
|||
IG_C99_DOC_BADLY_FORMATTTED_ITEM1 = 0 |
|||
IG_C99_DOC_BADLY_FORMATTTED_ITEM2 = 1 |
|||
|
|||
// item 3 |
|||
// ------ |
|||
// multiline |
|||
// doc with bad formattting |
|||
IG_C99_DOC_BADLY_FORMATTTED_ITEM3 = 2 |
|||
} IG_C99_DOC_BADLY_FORMATTTED; |
|||
|
|||
typedef enum _IG_C99_HEX_ITEMS { |
|||
IG_C99_HEX_ITEMS_ITEM1 = 0x00, |
|||
IG_C99_HEX_ITEMS_ITEM2 = 0x10, // oneline doc |
|||
|
|||
// item 3 |
|||
// ------ |
|||
// multi line |
|||
// doc |
|||
IG_C99_HEX_ITEMS_ITEM3 = 0xff |
|||
} IG_C99_HEX_ITEMS; |
|||
|
|||
|
|||
// Structs |
|||
// ------- |
|||
|
|||
// Functions |
|||
// --------- |
|||
|
|||
#ifdef __cplusplus |
|||
} // extern "C" |
|||
#endif |
@ -0,0 +1,55 @@ |
|||
pEpACIDLang { |
|||
include pEpACIDLang.yml2 |
|||
|
|||
package ig_c99 { |
|||
version 1.0; |
|||
license "License text"; |
|||
copyleft "Copyleft text"; |
|||
|
|||
api test { |
|||
|
|||
enum good { |
|||
item item1 doc="oneline doc"; |
|||
item item2 doc=""; |
|||
item item3 |
|||
doc= |
|||
""" |
|||
item 3 |
|||
------ |
|||
multiline |
|||
doc |
|||
"""; |
|||
}; |
|||
|
|||
enum doc_badly_formattted { |
|||
item item1 0; |
|||
item item2 1; |
|||
item item3 2 |
|||
doc= |
|||
""" |
|||
|
|||
|
|||
|
|||
item 3 |
|||
------ |
|||
|
|||
multiline |
|||
|
|||
doc with bad formattting """; |
|||
}; |
|||
|
|||
enum hex_items { |
|||
hex item1 0x00; |
|||
hex item2 0x10 doc="oneline doc"; |
|||
hex item3 0xff |
|||
doc= |
|||
""" |
|||
item 3 |
|||
------ |
|||
multi line |
|||
doc |
|||
"""; |
|||
}; |
|||
}; |
|||
}; |
|||
} |
Loading…
Reference in new issue