emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/phps-mode 2efba0b 38/62: Started on generated parser vi


From: Christian Johansson
Subject: [elpa] externals/phps-mode 2efba0b 38/62: Started on generated parser via emacs-parser-generator
Date: Tue, 20 Apr 2021 10:56:19 -0400 (EDT)

branch: externals/phps-mode
commit 2efba0b1123db707caecb75f252f715a7cfc6ba1
Author: Christian Johansson <christian@mediastrategi.se>
Commit: Christian Johansson <christian@mediastrategi.se>

    Started on generated parser via emacs-parser-generator
---
 admin/phps-mode-automation-grammar.el | 357 ++++++++++++++++++++++++++++++++++
 admin/phps-mode-automation-header.wy  | 312 -----------------------------
 admin/phps-mode-automation.el         |  51 +----
 3 files changed, 360 insertions(+), 360 deletions(-)

diff --git a/admin/phps-mode-automation-grammar.el 
b/admin/phps-mode-automation-grammar.el
new file mode 100644
index 0000000..3e355ed
--- /dev/null
+++ b/admin/phps-mode-automation-grammar.el
@@ -0,0 +1,357 @@
+;;; phps-mode-automation-grammar --- Grammar -*- lexical-binding: t -*-
+
+;;; Commentary:
+
+;;; Code:
+
+(defconst
+  phps-mode-automation-grammar-non-terminals
+  '(
+    absolute_trait_method_reference
+    alt_if_stmt
+    alt_if_stmt_without_else
+    anonymous_class
+    argument
+    argument_list
+    array_object_dereferencable
+    array_pair
+    array_pair_list
+    attribute
+    attribute_decl
+    attribute_group
+    attributed_class_statement
+    attributed_parameter
+    attributed_statement
+    attributes
+    backticks_expr
+    backup_doc_comment
+    backup_fn_flags
+    backup_lex_pos
+    callable_expr
+    callable_variable
+    case_list
+    case_separator
+    catch_list
+    catch_name_list
+    class_const_decl
+    class_const_list
+    class_constant
+    class_declaration_statement
+    class_modifier
+    class_modifiers
+    class_name
+    class_name_list
+    class_name_reference
+    class_statement
+    class_statement_list
+    const_decl
+    const_list
+    constant
+    ctor_arguments
+    declare_statement
+    dereferencable_scalar
+    echo_expr_list
+    encaps_list
+    encaps_var
+    encaps_var_offset
+    exit_expr
+    expr
+    extends_from
+    finally_statement
+    fn
+    for_exprs
+    for_statement
+    foreach_statement
+    foreach_variable
+    fully_dereferencable
+    function
+    function_call
+    function_declaration_statement
+    global_var
+    global_var_list
+    group_use_declaration
+    identifier
+    if_stmt
+    if_stmt_without_else
+    implements_list
+    inline_function
+    inline_use_declaration
+    inline_use_declarations
+    inner_statement
+    inner_statement_list
+    interface_declaration_statement
+    interface_extends_list
+    internal_functions_in_yacc
+    is_reference
+    is_variadic
+    isset_variable
+    isset_variables
+    legacy_namespace_name
+    lexical_var
+    lexical_var_list
+    lexical_vars
+    match
+    match_arm
+    match_arm_cond_list
+    match_arm_list
+    member_modifier
+    member_name
+    method_body
+    method_modifiers
+    mixed_group_use_declaration
+    name
+    namespace_declaration_name
+    namespace_name
+    new_expr
+    new_variable
+    non_empty_argument_list
+    non_empty_array_pair_list
+    non_empty_for_exprs
+    non_empty_match_arm_list
+    non_empty_member_modifiers
+    non_empty_parameter_list
+    optional_expr
+    optional_type_without_static
+    optional_variable
+    optional_visibility_modifier
+    parameter
+    parameter_list
+    possible_array_pair
+    possible_comma
+    property
+    property_list
+    property_name
+    reserved_non_modifiers
+    return_type
+    returns_ref
+    scalar
+    semi_reserved
+    simple_variable
+    start
+    statement
+    static_member
+    static_var
+    static_var_list
+    switch_case_list
+    top_statement
+    top_statement_list
+    trait_adaptation
+    trait_adaptation_list
+    trait_adaptations
+    trait_alias
+    trait_declaration_statement
+    trait_method_reference
+    trait_precedence
+    type
+    type_expr
+    type_expr_without_static
+    type_without_static
+    union_type
+    union_type_without_static
+    unprefixed_use_declaration
+    unprefixed_use_declarations
+    unset_variable
+    unset_variables
+    use_declaration
+    use_declarations
+    use_type
+    variable
+    variable_class_name
+    variable_modifiers
+    while_statement
+    )
+  "The non-terminals in grammar.")
+
+(defconst
+  phps-mode-automation-grammar-terminals
+  '(
+    "!"
+    "%"
+    "&"
+    "("
+    ")"
+    "*"
+    "+"
+    ","
+    "-"
+    "/"
+    ":"
+    ";"
+    "<"
+    "="
+    ">"
+    "?"
+    "@"
+    "["
+    "]"
+    "^"
+    "|"
+    "~"
+    T_ABSTRACT
+    T_AND
+    T_ARG
+    T_ARRAY
+    T_ARROW
+    T_AS
+    T_ASSIGN
+    T_ATTRIBUTE
+    T_BAD
+    T_BOOL
+    T_BOOLEAN
+    T_BREAK
+    T_CALL
+    T_CALLABLE
+    T_CASE
+    T_CATCH
+    T_CLASS
+    T_CLONE
+    T_CLOSE
+    T_CLOSURE
+    T_COALESCE
+    T_COMMENT
+    T_COMPILER
+    T_CONCAT
+    T_CONDITIONAL
+    T_CONST
+    T_CONSTANT
+    T_CONTINUE
+    T_CURLY
+    T_DEC
+    T_DECL
+    T_DECLARE
+    T_DEFAULT
+    T_DIM
+    T_DIR
+    T_DIV
+    T_DNUMBER
+    T_DO
+    T_DOC
+    T_DOLLAR
+    T_DOUBLE
+    T_ECHO
+    T_ELLIPSIS
+    T_ELSE
+    T_ELSEIF
+    T_EMPTY
+    T_ENCAPS
+    T_ENCAPSED
+    T_END
+    T_ENDDECLARE
+    T_ENDFOR
+    T_ENDFOREACH
+    T_ENDIF
+    T_ENDSWITCH
+    T_ENDWHILE
+    T_EQUAL
+    T_ERROR
+    T_EVAL
+    T_EXIT
+    T_EXPR
+    T_EXTENDS
+    T_FILE
+    T_FINAL
+    T_FINALLY
+    T_FN
+    T_FOR
+    T_FOREACH
+    T_FQ
+    T_FUNC
+    T_FUNCTION
+    T_GLOBAL
+    T_GOTO
+    T_GREATER
+    T_GROUP
+    T_HALT
+    T_IDENTICAL
+    T_IF
+    T_IMPLEMENTS
+    T_INC
+    T_INCLUDE
+    T_INLINE
+    T_INSTANCEOF
+    T_INSTEADOF
+    T_INT
+    T_INTERFACE
+    T_IS
+    T_ISSET
+    T_LABEL
+    T_LINE
+    T_LIST
+    T_LNUMBER
+    T_LOGICAL
+    T_MAGIC
+    T_MATCH
+    T_METHOD
+    T_MINUS
+    T_MOD
+    T_MUL
+    T_NAME
+    T_NAMED
+    T_NAMESPACE
+    T_NEW
+    T_NOELSE
+    T_NS
+    T_NULLSAFE
+    T_NUM
+    T_OBJECT
+    T_OPEN
+    T_OPERATOR
+    T_OR
+    T_PAAMAYIM
+    T_PARAM
+    T_PLUS
+    T_POST
+    T_POW
+    T_PRE
+    T_PRINT
+    T_PRIVATE
+    T_PROP
+    T_PROTECTED
+    T_PUBLIC
+    T_REF
+    T_REQUIRE
+    T_RETURN
+    T_SHELL
+    T_SILENCE
+    T_SL
+    T_SPACESHIP
+    T_SR
+    T_START
+    T_STATIC
+    T_STMT
+    T_STRING
+    T_SWITCH
+    T_THROW
+    T_TRAIT
+    T_TRY
+    T_TYPE
+    T_UNARY
+    T_UNPACK
+    T_UNSET
+    T_USE
+    T_VAR
+    T_VARIABLE
+    T_WHILE
+    T_WHITESPACE
+    T_XOR
+    T_YIELD
+    )
+  "The terminals of grammar.")
+
+(defconst
+  phps-mode-automation-grammar-look-ahead-number
+  1
+  "The look-ahead number of grammar.")
+
+(defconst
+  phps-mode-automation-grammar-productions
+  '(
+    ;; TODO Implement this
+    )
+  "The productions of grammar.")
+
+
+(provide 'phps-mode-automation-grammar)
+
+;;; phps-mode-automation-grammar.el ends here
+
diff --git a/admin/phps-mode-automation-header.wy 
b/admin/phps-mode-automation-header.wy
deleted file mode 100644
index 17c4b33..0000000
--- a/admin/phps-mode-automation-header.wy
+++ /dev/null
@@ -1,312 +0,0 @@
-;;; phps.wy --- Semantic LALR grammar for PHP -*- lexical-binding: t -*-
-
-;; Copyright (C) 2018-2020  Free Software Foundation, Inc.
-
-;; This file is not part of GNU Emacs.
-
-;; This program is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License as
-;; published by the Free Software Foundation; either version 2, or (at
-;; your option) any later version.
-
-;; This program is distributed in the hope that it will be useful, but
-;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-
-;;; Commentary:
-
-;; Run `(wisent-make-parsers)' or "C-c C-c" to generate grammar-file in Emacs 
Lisp.
-;;
-;; To debug (setq wisent-verbose-flag t) and check buffer *wisent-log*
-;;
-;; Based on the Zend PHP Parser YACC 
https://github.com/php/php-src/blob/master/Zend/zend_language_parser.y
-
-;; Create macros for all macros uses in original YACC, base macro structure on 
semantic-php-wy-macro.el
-
-;; Don't edit phps.wy because it's generated by phps-automation.el and 
phps-automation-header.wy
-
-;; Check semantic/wisent/grammar.el for macro definitions
-
-;; To force compile grammar use: (semantic-grammar-create-package t)
-
-
-;;; Code:
-
-%package phps-mode
-%provide phps-mode-wy
-
-%languagemode phps-mode
-
-%{
-  (setq max-specpdl-size 160000)
-}
-
-%use-macros phps-mode-parser-grammar-macro
-{
- ZEND_AST_CREATE
- ZEND_AST_CREATE_ASSIGN_OP
- ZEND_AST_CREATE_BINARY_OP
- ZEND_AST_CREATE_CAST
- ZEND_AST_CREATE_CLASS_CONST_OR_NAME
- ZEND_AST_CREATE_EX
- ZEND_AST_CREATE_LIST
- ZEND_AST_CREATE_ZVAL
- ZEND_AST_LIST_ADD
- ZEND_AST_LIST_RTRIM
- ZEND_LEX_TSTRING
- ZEND_NEGATE_NUM_STRING
- ZVAL_INTERNED_STR
-}
-
-%precedence T_THROW
-%precedence PREC_ARROW_FUNCTION
-%precedence T_INCLUDE T_INCLUDE_ONCE T_REQUIRE T_REQUIRE_ONCE
-%left T_LOGICAL_OR
-%left T_LOGICAL_XOR
-%left T_LOGICAL_AND
-%precedence T_PRINT
-%precedence T_YIELD
-%precedence T_DOUBLE_ARROW
-%precedence T_YIELD_FROM
-%precedence '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL 
T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL 
T_SR_EQUAL T_POW_EQUAL T_COALESCE_EQUAL
-%left '?' ':'
-%right T_COALESCE
-%left T_BOOLEAN_OR
-%left T_BOOLEAN_AND
-%left '|'
-%left '^'
-%left '&'
-%nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL 
T_SPACESHIP
-%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL
-%left '.'
-%left T_SL T_SR
-%left '+' '-'
-%left '*' '/' '%'
-%precedence '!'
-%precedence T_INSTANCEOF
-%precedence '~' T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST 
T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@'
-%right T_POW
-%precedence T_CLONE
-
-;; Resolve danging else conflict
-%precedence T_NOELSE
-%precedence T_ELSEIF
-%precedence T_ELSE
-
-%token <ast> T_LNUMBER   "integer number (T_LNUMBER)"
-%token <ast> T_DNUMBER   "floating-point number (T_DNUMBER)"
-%token <ast> T_STRING    "identifier (T_STRING)"
-%token <ast> T_VARIABLE  "variable (T_VARIABLE)"
-%token <ast> T_INLINE_HTML
-%token <ast> T_ENCAPSED_AND_WHITESPACE  "quoted-string and whitespace 
(T_ENCAPSED_AND_WHITESPACE)"
-%token <ast> T_CONSTANT_ENCAPSED_STRING "quoted-string 
(T_CONSTANT_ENCAPSED_STRING)"
-%token <ast> T_STRING_VARNAME "variable name (T_STRING_VARNAME)"
-%token <ast> T_NUM_STRING "number (T_NUM_STRING)"
-
-%type <punctuation>
-%token <punctuation> ADDITION "+"
-%token <punctuation> ASSIGN "="
-%token <punctuation> AT "@"
-%token <punctuation> BACKTICK "`"
-%token <punctuation> BITWISE_AND "&"
-%token <punctuation> BITWISE_OR "|"
-%token <punctuation> CLOSE_CURLY_BRACKET "]"
-%token <punctuation> CLOSE_PARENTHESIS ")"
-%token <punctuation> CLOSE_SQUARE_BRACKET "]"
-%token <punctuation> COLON ":"
-%token <punctuation> COMMA ","
-%token <punctuation> DOLLAR_SIGN "$"
-%token <punctuation> DOUBLE_QUOTE "\""
-%token <punctuation> DIVISION "/"
-%token <punctuation> DOT "."
-%token <punctuation> GREATER_THAN ">"
-%token <punctuation> LESSER_THAN "<"
-%token <punctuation> MODULO "%"
-%token <punctuation> MULTIPLICATION "*"
-%token <punctuation> NEGATION "!"
-%token <punctuation> OPEN_CURLY_BRACKET "{"
-%token <punctuation> OPEN_PARENTHESIS "("
-%token <punctuation> OPEN_SQUARE_BRACKET "["
-%token <punctuation> POW "^"
-%token <punctuation> QUESTION_MARK "?"
-%token <punctuation> SEMICOLON ";"
-%token <punctuation> SINGLE_QUOTE "'"
-%token <punctuation> SUBTRACTION "-"
-%token <punctuation> UNARY "~"
-
-%token END 0 "end of file"
-%token T_INCLUDE      "include (T_INCLUDE)"
-%token T_INCLUDE_ONCE "include_once (T_INCLUDE_ONCE)"
-%token T_EVAL         "eval (T_EVAL)"
-%token T_REQUIRE      "require (T_REQUIRE)"
-%token T_REQUIRE_ONCE "require_once (T_REQUIRE_ONCE)"
-%token T_LOGICAL_OR   "or (T_LOGICAL_OR)"
-%token T_LOGICAL_XOR  "xor (T_LOGICAL_XOR)"
-%token T_LOGICAL_AND  "and (T_LOGICAL_AND)"
-%token T_PRINT        "print (T_PRINT)"
-%token T_YIELD        "yield (T_YIELD)"
-%token T_YIELD_FROM   "yield from (T_YIELD_FROM)"
-%token T_PLUS_EQUAL   "+= (T_PLUS_EQUAL)"
-%token T_MINUS_EQUAL  "-= (T_MINUS_EQUAL)"
-%token T_MUL_EQUAL    "*= (T_MUL_EQUAL)"
-%token T_DIV_EQUAL    "/= (T_DIV_EQUAL)"
-%token T_CONCAT_EQUAL ".= (T_CONCAT_EQUAL)"
-%token T_MOD_EQUAL    "%= (T_MOD_EQUAL)"
-%token T_AND_EQUAL    "&= (T_AND_EQUAL)"
-%token T_OR_EQUAL     "|= (T_OR_EQUAL)"
-%token T_XOR_EQUAL    "^= (T_XOR_EQUAL)"
-%token T_SL_EQUAL     "<<= (T_SL_EQUAL)"
-%token T_SR_EQUAL     ">>= (T_SR_EQUAL)"
-%token T_COALESCE_EQUAL "??= (T_COALESCE_EQUAL)"
-%token T_BOOLEAN_OR   "|| (T_BOOLEAN_OR)"
-%token T_BOOLEAN_AND  "&& (T_BOOLEAN_AND)"
-%token T_IS_EQUAL     "== (T_IS_EQUAL)"
-%token T_IS_NOT_EQUAL "!= (T_IS_NOT_EQUAL)"
-%token T_IS_IDENTICAL "=== (T_IS_IDENTICAL)"
-%token T_IS_NOT_IDENTICAL "!== (T_IS_NOT_IDENTICAL)"
-%token T_IS_SMALLER_OR_EQUAL "<= (T_IS_SMALLER_OR_EQUAL)"
-%token T_IS_GREATER_OR_EQUAL ">= (T_IS_GREATER_OR_EQUAL)"
-%token T_SPACESHIP "<=> (T_SPACESHIP)"
-%token T_SL "<< (T_SL)"
-%token T_SR ">> (T_SR)"
-%token T_INSTANCEOF  "instanceof (T_INSTANCEOF)"
-%token T_INC "++ (T_INC)"
-%token T_DEC "-- (T_DEC)"
-%token T_INT_CAST    "(int) (T_INT_CAST)"
-%token T_DOUBLE_CAST "(double) (T_DOUBLE_CAST)"
-%token T_STRING_CAST "(string) (T_STRING_CAST)"
-%token T_ARRAY_CAST  "(array) (T_ARRAY_CAST)"
-%token T_OBJECT_CAST "(object) (T_OBJECT_CAST)"
-%token T_BOOL_CAST   "(bool) (T_BOOL_CAST)"
-%token T_UNSET_CAST  "(unset) (T_UNSET_CAST)"
-%token T_NEW       "new (T_NEW)"
-%token T_CLONE     "clone (T_CLONE)"
-%token T_EXIT      "exit (T_EXIT)"
-%token T_IF        "if (T_IF)"
-%token T_ELSEIF    "elseif (T_ELSEIF)"
-%token T_ELSE      "else (T_ELSE)"
-%token T_ENDIF     "endif (T_ENDIF)"
-%token T_ECHO       "echo (T_ECHO)"
-%token T_DO         "do (T_DO)"
-%token T_WHILE      "while (T_WHILE)"
-%token T_ENDWHILE   "endwhile (T_ENDWHILE)"
-%token T_FOR        "for (T_FOR)"
-%token T_ENDFOR     "endfor (T_ENDFOR)"
-%token T_FOREACH    "foreach (T_FOREACH)"
-%token T_ENDFOREACH "endforeach (T_ENDFOREACH)"
-%token T_DECLARE    "declare (T_DECLARE)"
-%token T_ENDDECLARE "enddeclare (T_ENDDECLARE)"
-%token T_AS         "as (T_AS)"
-%token T_SWITCH     "switch (T_SWITCH)"
-%token T_ENDSWITCH  "endswitch (T_ENDSWITCH)"
-%token T_CASE       "case (T_CASE)"
-%token T_DEFAULT    "default (T_DEFAULT)"
-%token T_BREAK      "break (T_BREAK)"
-%token T_CONTINUE   "continue (T_CONTINUE)"
-%token T_GOTO       "goto (T_GOTO)"
-%token T_FUNCTION   "function (T_FUNCTION)"
-%token T_FN         "fn (T_FN)"
-%token T_CONST      "const (T_CONST)"
-%token T_RETURN     "return (T_RETURN)"
-%token T_TRY        "try (T_TRY)"
-%token T_CATCH      "catch (T_CATCH)"
-%token T_FINALLY    "finally (T_FINALLY)"
-%token T_THROW      "throw (T_THROW)"
-%token T_USE        "use (T_USE)"
-%token T_INSTEADOF  "insteadof (T_INSTEADOF)"
-%token T_GLOBAL     "global (T_GLOBAL)"
-%token T_STATIC     "static (T_STATIC)"
-%token T_ABSTRACT   "abstract (T_ABSTRACT)"
-%token T_FINAL      "final (T_FINAL)"
-%token T_PRIVATE    "private (T_PRIVATE)"
-%token T_PROTECTED  "protected (T_PROTECTED)"
-%token T_PUBLIC     "public (T_PUBLIC)"
-%token T_VAR        "var (T_VAR)"
-%token T_UNSET      "unset (T_UNSET)"
-%token T_ISSET      "isset (T_ISSET)"
-%token T_EMPTY      "empty (T_EMPTY)"
-%token T_HALT_COMPILER "__halt_compiler (T_HALT_COMPILER)"
-%token T_CLASS      "class (T_CLASS)"
-%token T_TRAIT      "trait (T_TRAIT)"
-%token T_INTERFACE  "interface (T_INTERFACE)"
-%token T_EXTENDS    "extends (T_EXTENDS)"
-%token T_IMPLEMENTS "implements (T_IMPLEMENTS)"
-%token T_OBJECT_OPERATOR "-> (T_OBJECT_OPERATOR)"
-%token T_DOUBLE_ARROW    "=> (T_DOUBLE_ARROW)"
-%token T_LIST            "list (T_LIST)"
-%token T_ARRAY           "array (T_ARRAY)"
-%token T_CALLABLE        "callable (T_CALLABLE)"
-%token T_LINE            "__LINE__ (T_LINE)"
-%token T_FILE            "__FILE__ (T_FILE)"
-%token T_DIR             "__DIR__ (T_DIR)"
-%token T_CLASS_C         "__CLASS__ (T_CLASS_C)"
-%token T_TRAIT_C         "__TRAIT__ (T_TRAIT_C)"
-%token T_METHOD_C        "__METHOD__ (T_METHOD_C)"
-%token T_FUNC_C          "__FUNCTION__ (T_FUNC_C)"
-%token T_COMMENT         "comment (T_COMMENT)"
-%token T_DOC_COMMENT     "doc comment (T_DOC_COMMENT)"
-%token T_OPEN_TAG        "open tag (T_OPEN_TAG)"
-%token T_OPEN_TAG_WITH_ECHO "open tag with echo (T_OPEN_TAG_WITH_ECHO)"
-%token T_CLOSE_TAG       "close tag (T_CLOSE_TAG)"
-%token T_WHITESPACE      "whitespace (T_WHITESPACE)"
-%token T_START_HEREDOC   "heredoc start (T_START_HEREDOC)"
-%token T_END_HEREDOC     "heredoc end (T_END_HEREDOC)"
-%token T_DOLLAR_OPEN_CURLY_BRACES "${ (T_DOLLAR_OPEN_CURLY_BRACES)"
-%token T_CURLY_OPEN      "{$ (T_CURLY_OPEN)"
-%token T_PAAMAYIM_NEKUDOTAYIM ":: (T_PAAMAYIM_NEKUDOTAYIM)"
-%token T_NAMESPACE       "namespace (T_NAMESPACE)"
-%token T_NS_C            "__NAMESPACE__ (T_NS_C)"
-%token T_NS_SEPARATOR    "\\ (T_NS_SEPARATOR)"
-%token T_ELLIPSIS        "... (T_ELLIPSIS)"
-%token T_COALESCE        "?? (T_COALESCE)"
-%token T_POW             "** (T_POW)"
-%token T_POW_EQUAL       "**= (T_POW_EQUAL)"
-%token T_BAD_CHARACTER   "invalid character (T_BAD_CHARACTER)"
-
-;; Token used to force a parse error from the lexer
-%token T_ERROR
-
-%type <ast> top_statement namespace_name name statement 
function_declaration_statement
-%type <ast> class_declaration_statement trait_declaration_statement
-%type <ast> interface_declaration_statement interface_extends_list
-%type <ast> group_use_declaration inline_use_declarations 
inline_use_declaration
-%type <ast> mixed_group_use_declaration use_declaration 
unprefixed_use_declaration
-%type <ast> unprefixed_use_declarations const_decl inner_statement
-%type <ast> expr optional_expr while_statement for_statement foreach_variable
-%type <ast> foreach_statement declare_statement finally_statement 
unset_variable variable
-%type <ast> extends_from parameter optional_type_without_static argument 
global_var
-%type <ast> static_var class_statement trait_adaptation trait_precedence 
trait_alias
-%type <ast> absolute_trait_method_reference trait_method_reference property 
echo_expr
-%type <ast> new_expr anonymous_class class_name class_name_reference 
simple_variable
-%type <ast> internal_functions_in_yacc
-%type <ast> exit_expr scalar backticks_expr lexical_var function_call 
member_name property_name
-%type <ast> variable_class_name dereferencable_scalar constant class_constant
-%type <ast> fully_dereferencable array_object_dereferencable
-%type <ast> callable_expr callable_variable static_member new_variable
-%type <ast> encaps_var encaps_var_offset isset_variables
-%type <ast> top_statement_list use_declarations const_list 
inner_statement_list if_stmt
-%type <ast> alt_if_stmt for_exprs switch_case_list global_var_list 
static_var_list
-%type <ast> echo_expr_list unset_variables catch_name_list catch_list 
optional_variable parameter_list class_statement_list
-%type <ast> implements_list case_list if_stmt_without_else
-%type <ast> non_empty_parameter_list argument_list non_empty_argument_list 
property_list
-%type <ast> class_const_list class_const_decl class_name_list 
trait_adaptations method_body non_empty_for_exprs
-%type <ast> ctor_arguments alt_if_stmt_without_else trait_adaptation_list 
lexical_vars
-%type <ast> lexical_var_list encaps_list
-%type <ast> array_pair non_empty_array_pair_list array_pair_list 
possible_array_pair
-%type <ast> isset_variable type return_type type_expr type_without_static
-%type <ast> identifier type_expr_without_static union_type_without_static
-%type <ast> inline_function union_type
-
-%type <num> returns_ref function fn is_reference is_variadic variable_modifiers
-%type <num> method_modifiers non_empty_member_modifiers member_modifier
-%type <num> class_modifiers class_modifier use_type backup_fn_flags
-
-%type <ptr> backup_lex_pos
-%type <str> backup_doc_comment
-
-%start start
\ No newline at end of file
diff --git a/admin/phps-mode-automation.el b/admin/phps-mode-automation.el
index d4ff671..28bc423 100644
--- a/admin/phps-mode-automation.el
+++ b/admin/phps-mode-automation.el
@@ -1,4 +1,4 @@
-;;; phps-automation --- Generate a Wisent Parser file -*- lexical-binding: t 
-*-
+;;; phps-mode-automation --- Generate a Wisent Parser file -*- 
lexical-binding: t -*-
 
 ;; Copyright (C) 2018-2021  Free Software Foundation, Inc.
 
@@ -27,41 +27,8 @@
 
 ;;; Code:
 
-(let ((php-yacc-url 
"https://raw.githubusercontent.com/php/php-src/master/Zend/zend_language_parser.y";)
-      (php-yacc-file (expand-file-name "zend_language_parser.y"))
-      (wisent-destination (expand-file-name 
"../phps-mode-parser-grammar-raw.wy"))
-      (header (expand-file-name "phps-mode-automation-header.wy"))
-      (terminal-replacements (make-hash-table :test 'equal)))
-
-  (puthash "'+'" "ADDITION" terminal-replacements)
-  (puthash "'='" "ASSIGN" terminal-replacements)
-  (puthash "'@'" "AT" terminal-replacements)
-  (puthash "'`'" "BACKTICK" terminal-replacements)
-  (puthash "'&'" "BITWISE_AND" terminal-replacements)
-  (puthash "'|'" "BITWISE_OR" terminal-replacements)
-  (puthash "'}'" "CLOSE_CURLY_BRACKET" terminal-replacements)
-  (puthash "')'" "CLOSE_PARENTHESIS" terminal-replacements)
-  (puthash "']'" "CLOSE_SQUARE_BRACKET" terminal-replacements)
-  (puthash "':'" "COLON" terminal-replacements)
-  (puthash "','" "COMMA" terminal-replacements)
-  (puthash "'$'" "DOLLAR_SIGN" terminal-replacements)
-  (puthash "'\"'" "DOUBLE_QUOTE" terminal-replacements)
-  (puthash "'/'" "DIVISION" terminal-replacements)
-  (puthash "'.'" "DOT" terminal-replacements)
-  (puthash "'>'" "GREATER_THAN" terminal-replacements)
-  (puthash "'<'" "LESSER_THAN" terminal-replacements)
-  (puthash "'%'" "MODULO" terminal-replacements)
-  (puthash "'*'" "MULTIPLICATION" terminal-replacements)
-  (puthash "'!'" "NEGATION" terminal-replacements)
-  (puthash "'{'" "OPEN_CURLY_BRACKET" terminal-replacements)
-  (puthash "'('" "OPEN_PARENTHESIS" terminal-replacements)
-  (puthash "'['" "OPEN_SQUARE_BRACKET" terminal-replacements)
-  (puthash "'^'" "POW" terminal-replacements)
-  (puthash "'?'" "QUESTION_MARK" terminal-replacements)
-  (puthash "';'" "SEMICOLON" terminal-replacements)
-  (puthash "'''" "SINGLE_QUOTE" terminal-replacements)
-  (puthash "'-'" "SUBTRACTION" terminal-replacements)
-  (puthash "'~'" "UNARY" terminal-replacements)
+(let ((php-yacc-url 
"https://raw.githubusercontent.com/php/php-src/php-8.0.0/Zend/zend_language_parser.y";)
+      (php-yacc-file (expand-file-name "zend_language_parser.y")))
 
   ;; Download Yacc if not available
   (unless (file-exists-p php-yacc-file)
@@ -69,18 +36,6 @@
     (url-copy-file php-yacc-url php-yacc-file t t)
     (message "Download completed"))
 
-  ;; Generate grammar
-  (message "Generating Wisent grammar..")
-  (if (fboundp 'emacs-wisent-grammar-converter--generate-grammar-from-filename)
-      (emacs-wisent-grammar-converter--generate-grammar-from-filename
-       php-yacc-file
-       wisent-destination
-       header
-       "phps-mode-parser--"
-       terminal-replacements)
-    (display-warning
-     'warning
-     "Missing emacs-wisent-grammar-converter!"))
   (message "Automation completed"))
 
 (provide 'phps-mode-automation)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]