Browse Source

ig-c99 - add test for enum doc fmt

main
heck 2 years ago
parent
commit
06a8739247
  1. 30
      lm-c99/tests/test_enum_doc/Makefile
  2. 61
      lm-c99/tests/test_enum_doc/ig-c99/test_api.h.target
  3. 55
      lm-c99/tests/test_enum_doc/test_enum.yml2

30
lm-c99/tests/test_enum_doc/Makefile

@ -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)

61
lm-c99/tests/test_enum_doc/ig-c99/test_api.h.target

@ -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

55
lm-c99/tests/test_enum_doc/test_enum.yml2

@ -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…
Cancel
Save