Extension description syntax; extension instantiation, field values and calls with arguments (except strings); example of a simple extension.

String arguments support is supposed to be added in a subsequent commit.
This commit is contained in:
Ruben Ayrapetyan
2015-02-24 16:38:49 +03:00
parent 3d9635300b
commit 79695bf3cd
32 changed files with 1031 additions and 111 deletions
+38
View File
@@ -0,0 +1,38 @@
/* Copyright 2015 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <stdio.h>
#include "init.h"
#include "jerry.h"
static void plugin_io_print_uint32 (uint32_t);
#include "io-extension-description.inc.h"
void
plugin_io_init (void)
{
jerry_extend_with (&jerry_extension);
} /* plugin_io_init */
/**
* Print an uint32 number without new-line to standard output
*/
static void
plugin_io_print_uint32 (uint32_t num) /**< uint32 to print */
{
printf ("%lu", num);
} /* print_uint32 */
+21
View File
@@ -0,0 +1,21 @@
/* Copyright 2015 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef INIT_H
#define INIT_H
extern void plugin_io_init (void);
#endif /* INIT_H */
+38
View File
@@ -0,0 +1,38 @@
/* Copyright 2015 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef IO_EXTENSION_DESCRIPTION_INC_H
#define IO_EXTENSION_DESCRIPTION_INC_H
#define EXTENSION_NAME "io"
#define EXTENSION_DESCRIPTION_HEADER "io-extension-description.inc.h"
#include "jerry-extension.inc.h"
#endif /* IO_EXTENSION_DESCRIPTION_INC_H */
#if defined (EXTENSION_FUNCTION)
EXTENSION_FUNCTION (print_uint32, plugin_io_print_uint32,
1,
EXTENSION_ARG (0, UINT32))
#elif defined (EXTENSION_FIELD)
#if defined (__TARGET_HOST)
EXTENSION_FIELD (platform, STRING, "linux")
#elif defined (__TARGET_MCU_STM32F3)
EXTENSION_FIELD (platform, STRING, "mcu_stm32f3")
#elif defined (__TARGET_MCU_STM32F3)
EXTENSION_FIELD (platform, STRING, "mcu_stm32f4")
#endif /* !__TARGET_MCU_STM32F3 && __TARGET_MCU_STM32F4 */
#endif /* !EXTENSION_FUNCTION && !EXTENSION_FIELD */