[packages/kannel] - updated to 1.4.5 - bison 3.0+ support (patch from https://redmine.kannel.org/issues/699) - release
adamg
adamg at pld-linux.org
Fri Sep 28 12:12:00 CEST 2018
commit 696776f76877f930caa7f3ea0bca69460c4f16e5
Author: Adam Gołębiowski <adamg at pld-linux.org>
Date: Fri Sep 28 12:11:11 2018 +0200
- updated to 1.4.5
- bison 3.0+ support (patch from https://redmine.kannel.org/issues/699)
- release 0.1, working on openssl 1.1.0 support
kannel-bison.patch | 690 +++++++++++++++++++++++++++++++++++++++++++++++++++++
kannel.spec | 10 +-
2 files changed, 694 insertions(+), 6 deletions(-)
---
diff --git a/kannel.spec b/kannel.spec
index 283841d..0dab00d 100644
--- a/kannel.spec
+++ b/kannel.spec
@@ -9,17 +9,16 @@
Summary: SMS/WAP gateway
Summary(pl.UTF-8): Bramka WAP oraz SMS
Name: kannel
-Version: 1.4.3
-Release: 7
+Version: 1.4.5
+Release: 0.1
License: BSD-like (see COPYING)
Group: Networking/Daemons
Source0: http://www.kannel.org/download/%{version}/gateway-%{version}.tar.gz
-# Source0-md5: 8925b147fb7aa01a10fa4f53cfeb03e9
+# Source0-md5: b6b5b48edb646e0e0e2ea5378c8ac9ff
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.conf
-Patch0: %{name}-types.patch
-Patch1: %{name}-nolibs.patch
+Patch0: %{name}-bison.patch
URL: http://www.kannel.org/
BuildRequires: ImageMagick
BuildRequires: autoconf
@@ -61,7 +60,6 @@ SMS, więc pozwala to na obsługę większej liczby klientów.
%prep
%setup -q -n gateway-%{version}
%patch0 -p1
-#%patch1 -p1
%build
cp -f /usr/share/automake/config.sub .
diff --git a/kannel-bison.patch b/kannel-bison.patch
new file mode 100644
index 0000000..fb25963
--- /dev/null
+++ b/kannel-bison.patch
@@ -0,0 +1,690 @@
+bison 3.0+ support, patch from https://redmine.kannel.org/issues/699
+
+diff -ur gateway-1.4.5.orig/wmlscript/wsgram.y gateway-1.4.5/wmlscript/wsgram.y
+--- gateway-1.4.5.orig/wmlscript/wsgram.y 2013-12-17 05:50:51.000000000 -0500
++++ gateway-1.4.5/wmlscript/wsgram.y 2018-08-17 15:43:57.000000000 -0500
+@@ -14,18 +14,9 @@
+
+ #include "wmlscript/wsint.h"
+
+-/* The required yyerror() function. This is actually not used but to
+- report the internal parser errors. All other errors are reported
+- by using the `wserror.h' functions. */
+-extern void yyerror(char *msg);
+-
+-#if WS_DEBUG
+-/* Just for debugging purposes. */
+-WsCompilerPtr global_compiler = NULL;
+-#endif /* WS_DEBUG */
+-
+ %}
+
++
+ /* The possible semantic values. */
+ %union
+ {
+@@ -45,6 +36,19 @@
+ WsExpression *expr;
+ }
+
++%{
++/* The required yyerror() function. This is actually not used but to
++ report the internal parser errors. All other errors are reported
++ by using the `wserror.h' functions. */
++extern void yyerror(YYLTYPE* locp, WsCompiler* compiler, const char* msg);
++
++#if WS_DEBUG
++/* Just for debugging purposes. */
++WsCompilerPtr global_compiler = NULL;
++#endif /* WS_DEBUG */
++
++%}
++
+ /* Tokens. */
+
+ /* Language literals. */
+@@ -106,6 +110,8 @@
+
+ /* Generate reentrant parser. */
+ %pure-parser
++%parse-param { WsCompiler* compiler }
++%lex-param { WsCompiler* compiler }
+
+ /* This grammar has one shift-reduce conflict. It comes from the
+ if-else statement. */
+@@ -119,7 +125,7 @@
+ Pragmas FunctionDeclarations
+ | FunctionDeclarations
+ | error
+- { ws_error_syntax(pctx, @1.first_line); }
++ { ws_error_syntax(compiler, @1.first_line); }
+ ;
+
+ /* Pragmas. */
+@@ -132,7 +138,7 @@
+ Pragma:
+ tUSE PragmaDeclaration ';'
+ | error
+- { ws_error_syntax(pctx, @1.first_line); }
++ { ws_error_syntax(compiler, @1.first_line); }
+ ;
+
+ PragmaDeclaration:
+@@ -143,7 +149,7 @@
+
+ ExternalCompilationUnitPragma:
+ tURL tIDENTIFIER tSTRING
+- { ws_pragma_use(pctx, @2.first_line, $2, $3); }
++ { ws_pragma_use(compiler, @2.first_line, $2, $3); }
+ ;
+
+ AccessControlPragma:
+@@ -153,28 +159,23 @@
+ AccessControlSpecifier:
+ tDOMAIN tSTRING
+ {
+- WsCompiler *compiler = (WsCompiler *) pctx;
+-
+ /* Pass this to the byte-code */
+ if (!ws_bc_add_pragma_access_domain(compiler->bc, $2->data,
+ $2->len))
+- ws_error_memory(pctx);
++ ws_error_memory(compiler);
+ ws_lexer_free_utf8(compiler, $2);
+ }
+ | tPATH tSTRING
+ {
+- WsCompiler *compiler = (WsCompiler *) pctx;
+-
+ /* Pass this to the byte-code */
+ if (!ws_bc_add_pragma_access_path(compiler->bc, $2->data,
+ $2->len))
+- ws_error_memory(pctx);
++ ws_error_memory(compiler);
+
+ ws_lexer_free_utf8(compiler, $2);
+ }
+ | tDOMAIN tSTRING tPATH tSTRING
+ {
+- WsCompiler *compiler = (WsCompiler *) pctx;
+ WsBool success = WS_TRUE;
+
+ /* Pass these to the byte-code */
+@@ -187,7 +188,7 @@
+ success = WS_FALSE;
+
+ if (!success)
+- ws_error_memory(pctx);
++ ws_error_memory(compiler);
+
+ ws_lexer_free_utf8(compiler, $2);
+ ws_lexer_free_utf8(compiler, $4);
+@@ -207,8 +208,6 @@
+ MetaName:
+ tNAME MetaBody
+ {
+- WsCompiler *compiler = (WsCompiler *) pctx;
+-
+ /* Meta information for the origin servers. Show it
+ * to the user if requested. */
+ if (compiler->params.meta_name_cb)
+@@ -225,8 +224,6 @@
+ MetaHttpEquiv:
+ tHTTP tEQUIV MetaBody
+ {
+- WsCompiler *compiler = (WsCompiler *) pctx;
+-
+ /* Meta information HTTP header that should be
+ * included to an HTTP response header. Show it to
+ * the user if requested. */
+@@ -246,7 +243,6 @@
+ tUSER tAGENT MetaBody
+ {
+ WsBool success;
+- WsCompiler *compiler = (WsCompiler *) pctx;
+
+ /* Pass this pragma to the byte-code */
+ if ($3) {
+@@ -272,16 +268,16 @@
+ ws_pragma_meta_body_free(compiler, $3);
+
+ if (!success)
+- ws_error_memory(pctx);
++ ws_error_memory(compiler);
+ }
+ }
+ ;
+
+ MetaBody:
+ MetaPropertyName MetaContent
+- { $$ = ws_pragma_meta_body(pctx, $1, $2, NULL); }
++ { $$ = ws_pragma_meta_body(compiler, $1, $2, NULL); }
+ | MetaPropertyName MetaContent MetaScheme
+- { $$ = ws_pragma_meta_body(pctx, $1, $2, $3); }
++ { $$ = ws_pragma_meta_body(compiler, $1, $2, $3); }
+ ;
+
+ MetaPropertyName: tSTRING;
+@@ -301,12 +297,12 @@
+ {
+ char *name = ws_strdup($3);
+
+- ws_lexer_free_block(pctx, $3);
++ ws_lexer_free_block(compiler, $3);
+
+ if (name)
+- ws_function(pctx, $1, name, @3.first_line, $5, $7);
++ ws_function(compiler, $1, name, @3.first_line, $5, $7);
+ else
+- ws_error_memory(pctx);
++ ws_error_memory(compiler);
+ }
+ ;
+
+@@ -317,7 +313,7 @@
+
+ FormalParameterListOpt:
+ /* empty */
+- { $$ = ws_list_new(pctx); }
++ { $$ = ws_list_new(compiler); }
+ | FormalParameterList
+ ;
+
+@@ -332,17 +328,17 @@
+ char *id;
+ WsFormalParm *parm;
+
+- id = ws_f_strdup(((WsCompiler *) pctx)->pool_stree, $1);
+- parm = ws_formal_parameter(pctx, @1.first_line, id);
++ id = ws_f_strdup((compiler)->pool_stree, $1);
++ parm = ws_formal_parameter(compiler, @1.first_line, id);
+
+- ws_lexer_free_block(pctx, $1);
++ ws_lexer_free_block(compiler, $1);
+
+ if (id == NULL || parm == NULL) {
+- ws_error_memory(pctx);
++ ws_error_memory(compiler);
+ $$ = NULL;
+ } else {
+- $$ = ws_list_new(pctx);
+- ws_list_append(pctx, $$, parm);
++ $$ = ws_list_new(compiler);
++ ws_list_append(compiler, $$, parm);
+ }
+ }
+ | FormalParameterList ',' tIDENTIFIER
+@@ -350,16 +346,16 @@
+ char *id;
+ WsFormalParm *parm;
+
+- id = ws_f_strdup(((WsCompiler *) pctx)->pool_stree, $3);
+- parm = ws_formal_parameter(pctx, @1.first_line, id);
++ id = ws_f_strdup(compiler->pool_stree, $3);
++ parm = ws_formal_parameter(compiler, @1.first_line, id);
+
+- ws_lexer_free_block(pctx, $3);
++ ws_lexer_free_block(compiler, $3);
+
+ if (id == NULL || parm == NULL) {
+- ws_error_memory(pctx);
++ ws_error_memory(compiler);
+ $$ = NULL;
+ } else
+- ws_list_append(pctx, $1, parm);
++ ws_list_append(compiler, $1, parm);
+ }
+ ;
+
+@@ -369,22 +365,22 @@
+ Block
+ {
+ if ($1)
+- $$ = ws_stmt_block(pctx, $1->first_line, $1->last_line,
++ $$ = ws_stmt_block(compiler, $1->first_line, $1->last_line,
+ $1);
+ else
+ $$ = NULL;
+ }
+ | VariableStatement
+ | ';' /* EmptyStatement */
+- { $$ = ws_stmt_empty(pctx, @1.first_line); }
++ { $$ = ws_stmt_empty(compiler, @1.first_line); }
+ | Expression ';' /* ExpressionStatement */
+- { $$ = ws_stmt_expr(pctx, $1->line, $1); }
++ { $$ = ws_stmt_expr(compiler, $1->line, $1); }
+ | IfStatement
+ | IterationStatement
+ | tCONTINUE ';' /* ContinueStatement */
+- { $$ = ws_stmt_continue(pctx, @1.first_line); }
++ { $$ = ws_stmt_continue(compiler, @1.first_line); }
+ | tBREAK ';' /* BreakStatement */
+- { $$ = ws_stmt_break(pctx, @1.first_line); }
++ { $$ = ws_stmt_break(compiler, @1.first_line); }
+ | ReturnStatement
+ ;
+
+@@ -398,56 +394,56 @@
+ }
+ | error
+ {
+- ws_error_syntax(pctx, @1.first_line);
++ ws_error_syntax(compiler, @1.first_line);
+ $$ = NULL;
+ }
+ ;
+
+ StatementListOpt:
+ /* empty */
+- { $$ = ws_list_new(pctx); }
++ { $$ = ws_list_new(compiler); }
+ | StatementList
+ ;
+
+ StatementList:
+ Statement
+ {
+- $$ = ws_list_new(pctx);
+- ws_list_append(pctx, $$, $1);
++ $$ = ws_list_new(compiler);
++ ws_list_append(compiler, $$, $1);
+ }
+ | StatementList Statement
+- { ws_list_append(pctx, $1, $2); }
++ { ws_list_append(compiler, $1, $2); }
+ ;
+
+ VariableStatement:
+ tVAR VariableDeclarationList ';'
+- { $$ = ws_stmt_variable(pctx, @1.first_line, $2); }
++ { $$ = ws_stmt_variable(compiler, @1.first_line, $2); }
+ | tVAR error
+- { ws_error_syntax(pctx, @2.first_line); }
++ { ws_error_syntax(compiler, @2.first_line); }
+ ;
+
+ VariableDeclarationList:
+ VariableDeclaration
+ {
+- $$ = ws_list_new(pctx);
+- ws_list_append(pctx, $$, $1);
++ $$ = ws_list_new(compiler);
++ ws_list_append(compiler, $$, $1);
+ }
+ | VariableDeclarationList ',' VariableDeclaration
+- { ws_list_append(pctx, $1, $3); }
++ { ws_list_append(compiler, $1, $3); }
+ ;
+
+ VariableDeclaration:
+ tIDENTIFIER VariableInitializedOpt
+ {
+- char *id = ws_f_strdup(((WsCompiler *) pctx)->pool_stree,
++ char *id = ws_f_strdup(compiler->pool_stree,
+ $1);
+
+- ws_lexer_free_block(pctx, $1);
++ ws_lexer_free_block(compiler, $1);
+ if (id == NULL) {
+- ws_error_memory(pctx);
++ ws_error_memory(compiler);
+ $$ = NULL;
+ } else
+- $$ = ws_variable_declaration(pctx, id, $2);
++ $$ = ws_variable_declaration(compiler, id, $2);
+ }
+ ;
+
+@@ -460,29 +456,29 @@
+
+ IfStatement:
+ tIF '(' Expression ')' Statement tELSE Statement
+- { $$ = ws_stmt_if(pctx, @1.first_line, $3, $5, $7); }
++ { $$ = ws_stmt_if(compiler, @1.first_line, $3, $5, $7); }
+ | tIF '(' Expression ')' Statement
+- { $$ = ws_stmt_if(pctx, @1.first_line, $3, $5, NULL); }
++ { $$ = ws_stmt_if(compiler, @1.first_line, $3, $5, NULL); }
+ ;
+
+ IterationStatement:
+ tWHILE '(' Expression ')' Statement
+- { $$ = ws_stmt_while(pctx, @1.first_line, $3, $5); }
++ { $$ = ws_stmt_while(compiler, @1.first_line, $3, $5); }
+ | ForStatement
+ ;
+
+ ForStatement:
+ tFOR '(' ExpressionOpt ';' ExpressionOpt ';' ExpressionOpt ')'
+ Statement
+- { $$ = ws_stmt_for(pctx, @1.first_line, NULL, $3, $5, $7, $9); }
++ { $$ = ws_stmt_for(compiler, @1.first_line, NULL, $3, $5, $7, $9); }
+ | tFOR '(' tVAR VariableDeclarationList ';' ExpressionOpt ';'
+ ExpressionOpt ')' Statement
+- { $$ = ws_stmt_for(pctx, @1.first_line, $4, NULL, $6, $8, $10); }
++ { $$ = ws_stmt_for(compiler, @1.first_line, $4, NULL, $6, $8, $10); }
+ ;
+
+ ReturnStatement:
+ tRETURN ExpressionOpt ';'
+- { $$ = ws_stmt_return(pctx, @1.first_line, $2); }
++ { $$ = ws_stmt_return(compiler, @1.first_line, $2); }
+ ;
+
+ /* Expressions. */
+@@ -496,135 +492,135 @@
+ Expression:
+ AssignmentExpression
+ | Expression ',' AssignmentExpression
+- { $$ = ws_expr_comma(pctx, @2.first_line, $1, $3); }
++ { $$ = ws_expr_comma(compiler, @2.first_line, $1, $3); }
+ ;
+
+ AssignmentExpression:
+ ConditionalExpression
+ | tIDENTIFIER '=' AssignmentExpression
+- { $$ = ws_expr_assign(pctx, @1.first_line, $1, '=', $3); }
++ { $$ = ws_expr_assign(compiler, @1.first_line, $1, '=', $3); }
+ | tIDENTIFIER tMULA AssignmentExpression
+- { $$ = ws_expr_assign(pctx, @1.first_line, $1, tMULA, $3); }
++ { $$ = ws_expr_assign(compiler, @1.first_line, $1, tMULA, $3); }
+ | tIDENTIFIER tDIVA AssignmentExpression
+- { $$ = ws_expr_assign(pctx, @1.first_line, $1, tDIVA, $3); }
++ { $$ = ws_expr_assign(compiler, @1.first_line, $1, tDIVA, $3); }
+ | tIDENTIFIER tREMA AssignmentExpression
+- { $$ = ws_expr_assign(pctx, @1.first_line, $1, tREMA, $3); }
++ { $$ = ws_expr_assign(compiler, @1.first_line, $1, tREMA, $3); }
+ | tIDENTIFIER tADDA AssignmentExpression
+- { $$ = ws_expr_assign(pctx, @1.first_line, $1, tADDA, $3); }
++ { $$ = ws_expr_assign(compiler, @1.first_line, $1, tADDA, $3); }
+ | tIDENTIFIER tSUBA AssignmentExpression
+- { $$ = ws_expr_assign(pctx, @1.first_line, $1, tSUBA, $3); }
++ { $$ = ws_expr_assign(compiler, @1.first_line, $1, tSUBA, $3); }
+ | tIDENTIFIER tLSHIFTA AssignmentExpression
+- { $$ = ws_expr_assign(pctx, @1.first_line, $1, tLSHIFTA, $3); }
++ { $$ = ws_expr_assign(compiler, @1.first_line, $1, tLSHIFTA, $3); }
+ | tIDENTIFIER tRSSHIFTA AssignmentExpression
+- { $$ = ws_expr_assign(pctx, @1.first_line, $1, tRSSHIFTA, $3); }
++ { $$ = ws_expr_assign(compiler, @1.first_line, $1, tRSSHIFTA, $3); }
+ | tIDENTIFIER tRSZSHIFTA AssignmentExpression
+- { $$ = ws_expr_assign(pctx, @1.first_line, $1, tRSZSHIFTA, $3); }
++ { $$ = ws_expr_assign(compiler, @1.first_line, $1, tRSZSHIFTA, $3); }
+ | tIDENTIFIER tANDA AssignmentExpression
+- { $$ = ws_expr_assign(pctx, @1.first_line, $1, tANDA, $3); }
++ { $$ = ws_expr_assign(compiler, @1.first_line, $1, tANDA, $3); }
+ | tIDENTIFIER tXORA AssignmentExpression
+- { $$ = ws_expr_assign(pctx, @1.first_line, $1, tXORA, $3); }
++ { $$ = ws_expr_assign(compiler, @1.first_line, $1, tXORA, $3); }
+ | tIDENTIFIER tORA AssignmentExpression
+- { $$ = ws_expr_assign(pctx, @1.first_line, $1, tORA, $3); }
++ { $$ = ws_expr_assign(compiler, @1.first_line, $1, tORA, $3); }
+ | tIDENTIFIER tIDIVA AssignmentExpression
+- { $$ = ws_expr_assign(pctx, @1.first_line, $1, tIDIVA, $3); }
++ { $$ = ws_expr_assign(compiler, @1.first_line, $1, tIDIVA, $3); }
+ ;
+
+ ConditionalExpression:
+ LogicalORExpression
+ | LogicalORExpression '?' AssignmentExpression ':' AssignmentExpression
+- { $$ = ws_expr_conditional(pctx, @2.first_line, $1, $3, $5); }
++ { $$ = ws_expr_conditional(compiler, @2.first_line, $1, $3, $5); }
+ ;
+
+ LogicalORExpression:
+ LogicalANDExpression
+ | LogicalORExpression tOR LogicalANDExpression
+- { $$ = ws_expr_logical(pctx, @2.first_line, WS_ASM_SCOR, $1, $3); }
++ { $$ = ws_expr_logical(compiler, @2.first_line, WS_ASM_SCOR, $1, $3); }
+ ;
+
+ LogicalANDExpression:
+ BitwiseORExpression
+ | LogicalANDExpression tAND BitwiseORExpression
+- { $$ = ws_expr_logical(pctx, @2.first_line, WS_ASM_SCAND, $1, $3); }
++ { $$ = ws_expr_logical(compiler, @2.first_line, WS_ASM_SCAND, $1, $3); }
+ ;
+
+ BitwiseORExpression:
+ BitwiseXORExpression
+ | BitwiseORExpression '|' BitwiseXORExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_B_OR, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_B_OR, $1, $3); }
+ ;
+
+ BitwiseXORExpression:
+ BitwiseANDExpression
+ | BitwiseXORExpression '^' BitwiseANDExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_B_XOR, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_B_XOR, $1, $3); }
+ ;
+
+ BitwiseANDExpression:
+ EqualityExpression
+ | BitwiseANDExpression '&' EqualityExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_B_AND, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_B_AND, $1, $3); }
+ ;
+
+ EqualityExpression:
+ RelationalExpression
+ | EqualityExpression tEQ RelationalExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_EQ, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_EQ, $1, $3); }
+ | EqualityExpression tNE RelationalExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_NE, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_NE, $1, $3); }
+ ;
+
+ RelationalExpression:
+ ShiftExpression
+ | RelationalExpression '<' ShiftExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_LT, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_LT, $1, $3); }
+ | RelationalExpression '>' ShiftExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_GT, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_GT, $1, $3); }
+ | RelationalExpression tLE ShiftExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_LE, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_LE, $1, $3); }
+ | RelationalExpression tGE ShiftExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_GE, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_GE, $1, $3); }
+ ;
+
+ ShiftExpression:
+ AdditiveExpression
+ | ShiftExpression tLSHIFT AdditiveExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_B_LSHIFT, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_B_LSHIFT, $1, $3); }
+ | ShiftExpression tRSSHIFT AdditiveExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_B_RSSHIFT, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_B_RSSHIFT, $1, $3); }
+ | ShiftExpression tRSZSHIFT AdditiveExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_B_RSZSHIFT, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_B_RSZSHIFT, $1, $3); }
+ ;
+
+ AdditiveExpression:
+ MultiplicativeExpression
+ | AdditiveExpression '+' MultiplicativeExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_ADD, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_ADD, $1, $3); }
+ | AdditiveExpression '-' MultiplicativeExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_SUB, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_SUB, $1, $3); }
+ ;
+
+ MultiplicativeExpression:
+ UnaryExpression
+ | MultiplicativeExpression '*' UnaryExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_MUL, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_MUL, $1, $3); }
+ | MultiplicativeExpression '/' UnaryExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_DIV, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_DIV, $1, $3); }
+ | MultiplicativeExpression tIDIV UnaryExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_IDIV, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_IDIV, $1, $3); }
+ | MultiplicativeExpression '%' UnaryExpression
+- { $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_REM, $1, $3); }
++ { $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_REM, $1, $3); }
+ ;
+
+ UnaryExpression:
+ PostfixExpression
+ | tTYPEOF UnaryExpression
+- { $$ = ws_expr_unary(pctx, @1.first_line, WS_ASM_TYPEOF, $2); }
++ { $$ = ws_expr_unary(compiler, @1.first_line, WS_ASM_TYPEOF, $2); }
+ | tISVALID UnaryExpression
+- { $$ = ws_expr_unary(pctx, @1.first_line, WS_ASM_ISVALID, $2); }
++ { $$ = ws_expr_unary(compiler, @1.first_line, WS_ASM_ISVALID, $2); }
+ | tPLUSPLUS tIDENTIFIER
+- { $$ = ws_expr_unary_var(pctx, @1.first_line, WS_TRUE, $2); }
++ { $$ = ws_expr_unary_var(compiler, @1.first_line, WS_TRUE, $2); }
+ | tMINUSMINUS tIDENTIFIER
+- { $$ = ws_expr_unary_var(pctx, @1.first_line, WS_FALSE, $2); }
++ { $$ = ws_expr_unary_var(compiler, @1.first_line, WS_FALSE, $2); }
+ | '+' UnaryExpression
+ {
+ /* There is no direct way to compile unary `+'.
+@@ -638,65 +634,65 @@
+ * because binary `+' accepts strings, which makes the
+ * type conversion different.
+ */
+- $$ = ws_expr_binary(pctx, @1.first_line, WS_ASM_SUB, $2,
+- ws_expr_const_integer(pctx, @1.first_line, 0));
++ $$ = ws_expr_binary(compiler, @1.first_line, WS_ASM_SUB, $2,
++ ws_expr_const_integer(compiler, @1.first_line, 0));
+ }
+ | '-' UnaryExpression
+- { $$ = ws_expr_unary(pctx, @1.first_line, WS_ASM_UMINUS, $2); }
++ { $$ = ws_expr_unary(compiler, @1.first_line, WS_ASM_UMINUS, $2); }
+ | '~' UnaryExpression
+- { $$ = ws_expr_unary(pctx, @1.first_line, WS_ASM_B_NOT, $2); }
++ { $$ = ws_expr_unary(compiler, @1.first_line, WS_ASM_B_NOT, $2); }
+ | '!' UnaryExpression
+- { $$ = ws_expr_unary(pctx, @1.first_line, WS_ASM_NOT, $2); }
++ { $$ = ws_expr_unary(compiler, @1.first_line, WS_ASM_NOT, $2); }
+ ;
+
+ PostfixExpression:
+ CallExpression
+ | tIDENTIFIER tPLUSPLUS
+- { $$ = ws_expr_postfix_var(pctx, @1.first_line, WS_TRUE, $1); }
++ { $$ = ws_expr_postfix_var(compiler, @1.first_line, WS_TRUE, $1); }
+ | tIDENTIFIER tMINUSMINUS
+- { $$ = ws_expr_postfix_var(pctx, @1.first_line, WS_FALSE, $1); }
++ { $$ = ws_expr_postfix_var(compiler, @1.first_line, WS_FALSE, $1); }
+ ;
+
+ CallExpression:
+ PrimaryExpression
+ | tIDENTIFIER Arguments /* LocalScriptFunctionCall */
+ {
+- WsFunctionHash *f = ws_function_hash(pctx, $1);
++ WsFunctionHash *f = ws_function_hash(compiler, $1);
+
+ /* Add an usage count for the local script function. */
+ if (f)
+ f->usage_count++;
+
+- $$ = ws_expr_call(pctx, @1.first_line, ' ', NULL, $1, $2);
++ $$ = ws_expr_call(compiler, @1.first_line, ' ', NULL, $1, $2);
+ }
+ | tIDENTIFIER '#' tIDENTIFIER Arguments /* ExternalScriptFunctionCall*/
+- { $$ = ws_expr_call(pctx, @3.first_line, '#', $1, $3, $4); }
++ { $$ = ws_expr_call(compiler, @3.first_line, '#', $1, $3, $4); }
+ | tIDENTIFIER '.' tIDENTIFIER Arguments /* LibraryFunctionCall */
+- { $$ = ws_expr_call(pctx, @3.first_line, '.', $1, $3, $4); }
++ { $$ = ws_expr_call(compiler, @3.first_line, '.', $1, $3, $4); }
+ ;
+
+ PrimaryExpression:
+ tIDENTIFIER
+- { $$ = ws_expr_symbol(pctx, @1.first_line, $1); }
++ { $$ = ws_expr_symbol(compiler, @1.first_line, $1); }
+ | tINVALID
+- { $$ = ws_expr_const_invalid(pctx, @1.first_line); }
++ { $$ = ws_expr_const_invalid(compiler, @1.first_line); }
+ | tTRUE
+- { $$ = ws_expr_const_true(pctx, @1.first_line); }
++ { $$ = ws_expr_const_true(compiler, @1.first_line); }
+ | tFALSE
+- { $$ = ws_expr_const_false(pctx, @1.first_line); }
++ { $$ = ws_expr_const_false(compiler, @1.first_line); }
+ | tINTEGER
+- { $$ = ws_expr_const_integer(pctx, @1.first_line, $1); }
++ { $$ = ws_expr_const_integer(compiler, @1.first_line, $1); }
+ | tFLOAT
+- { $$ = ws_expr_const_float(pctx, @1.first_line, $1); }
++ { $$ = ws_expr_const_float(compiler, @1.first_line, $1); }
+ | tSTRING
+- { $$ = ws_expr_const_string(pctx, @1.first_line, $1); }
++ { $$ = ws_expr_const_string(compiler, @1.first_line, $1); }
+ | '(' Expression ')'
+ { $$ = $2; }
+ ;
+
+ Arguments:
+ '(' ')'
+- { $$ = ws_list_new(pctx); }
++ { $$ = ws_list_new(compiler); }
+ | '(' ArgumentList ')'
+ { $$ = $2; }
+ ;
+@@ -704,17 +700,17 @@
+ ArgumentList:
+ AssignmentExpression
+ {
+- $$ = ws_list_new(pctx);
+- ws_list_append(pctx, $$, $1);
++ $$ = ws_list_new(compiler);
++ ws_list_append(compiler, $$, $1);
+ }
+ | ArgumentList ',' AssignmentExpression
+- { ws_list_append(pctx, $1, $3); }
++ { ws_list_append(compiler, $1, $3); }
+ ;
+
+ %%
+
+ void
+-yyerror(char *msg)
++yyerror(YYLTYPE* locp, WsCompiler* compiler, const char* msg)
+ {
+ #if WS_DEBUG
+ fprintf(stderr, "*** %s:%ld: wsc: %s - this msg will be removed ***\n",
+diff -ur gateway-1.4.5.orig/wmlscript/wsint.h gateway-1.4.5/wmlscript/wsint.h
+--- gateway-1.4.5.orig/wmlscript/wsint.h 2018-01-17 04:24:38.000000000 -0500
++++ gateway-1.4.5/wmlscript/wsint.h 2018-08-17 15:45:26.000000000 -0500
+@@ -269,9 +269,6 @@
+
+ /********************* Lexer and parser *********************************/
+
+-#define YYPARSE_PARAM pctx
+-#define YYLEX_PARAM pctx
+-
+ /* The lexer. */
+ extern int yylex();
+
+@@ -293,6 +290,6 @@
+ void ws_lexer_free_utf8(WsCompiler *compiler, WsUtf8String *string);
+
+ /* The parser. */
+-int ws_yy_parse(void *context);
++int ws_yy_parse(WsCompiler* compiler);
+
+ #endif /* not WSINT_H */
+diff -ur gateway-1.4.5.orig/wmlscript/wslexer.c gateway-1.4.5/wmlscript/wslexer.c
+--- gateway-1.4.5.orig/wmlscript/wslexer.c 2018-01-17 04:24:38.000000000 -0500
++++ gateway-1.4.5/wmlscript/wslexer.c 2018-08-17 15:15:28.000000000 -0500
+@@ -218,9 +218,8 @@
+
+ /********************* Global functions *********************************/
+
+-int ws_yy_lex(YYSTYPE *yylval, YYLTYPE *yylloc, void *context)
++int ws_yy_lex(YYSTYPE *yylval, YYLTYPE *yylloc, WsCompiler* compiler)
+ {
+- WsCompiler *compiler = (WsCompiler *) context;
+ WsUInt32 ch, ch2;
+ WsBuffer buffer;
+ unsigned char *p;
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/kannel.git/commitdiff/696776f76877f930caa7f3ea0bca69460c4f16e5
More information about the pld-cvs-commit
mailing list