[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode adb54ae: Fixed comment/un-comment in buffer w
From: |
Christian Johansson |
Subject: |
[elpa] externals/phps-mode adb54ae: Fixed comment/un-comment in buffer with un-processed changes |
Date: |
Fri, 16 Oct 2020 10:38:24 -0400 (EDT) |
branch: externals/phps-mode
commit adb54aee05c1ba4e9eaf7d0e2165f8284f7e4c61
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Fixed comment/un-comment in buffer with un-processed changes
---
phps-mode-lex-analyzer.el | 8 +
phps-mode-parser-grammar-raw.wy | 1245 -----------------------------------
phps-mode-parser-grammar.wy | 665 -------------------
phps-mode-wy.el | 1004 ----------------------------
phps-mode.el | 4 +-
test/phps-mode-test-lex-analyzer.el | 18 +
6 files changed, 28 insertions(+), 2916 deletions(-)
diff --git a/phps-mode-lex-analyzer.el b/phps-mode-lex-analyzer.el
index e0a1d64..d2480c9 100644
--- a/phps-mode-lex-analyzer.el
+++ b/phps-mode-lex-analyzer.el
@@ -2824,6 +2824,10 @@ SQUARE-BRACKET-LEVEL and ROUND-BRACKET-LEVEL."
(defun phps-mode-lex-analyzer--comment-region (beg end &optional _arg)
"Comment region from BEG to END with optional _ARG."
+
+ ;; Make sure changes has been processed
+ (phps-mode-lex-analyzer--process-changes nil t)
+
;; Iterate tokens from beginning to end and comment out all PHP code
(when-let ((tokens phps-mode-lex-analyzer--tokens))
(let ((token-comment-start nil)
@@ -2912,6 +2916,10 @@ SQUARE-BRACKET-LEVEL and ROUND-BRACKET-LEVEL."
(defun phps-mode-lex-analyzer--uncomment-region (beg end &optional _arg)
"Un-comment region from BEG to END with optional ARG."
+
+ ;; Make sure changes has been processed
+ (phps-mode-lex-analyzer--process-changes nil t)
+
;; Iterate tokens from beginning to end and uncomment out all commented PHP
code
(when-let ((tokens phps-mode-lex-analyzer--tokens))
(let ((offset 0))
diff --git a/phps-mode-parser-grammar-raw.wy b/phps-mode-parser-grammar-raw.wy
deleted file mode 100644
index c52a375..0000000
--- a/phps-mode-parser-grammar-raw.wy
+++ /dev/null
@@ -1,1245 +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> 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
-
-;; NOTE Generated grammar starts here
-
-
-start:
- top_statement_list (let ((r)) (CG 'phps-mode-parser--ast $1) r)
- ;
-
-reserved_non_modifiers:
- T_INCLUDE
- | T_INCLUDE_ONCE
- | T_EVAL
- | T_REQUIRE
- | T_REQUIRE_ONCE
- | T_LOGICAL_OR
- | T_LOGICAL_XOR
- | T_LOGICAL_AND
- | T_INSTANCEOF
- | T_NEW
- | T_CLONE
- | T_EXIT
- | T_IF
- | T_ELSEIF
- | T_ELSE
- | T_ENDIF
- | T_ECHO
- | T_DO
- | T_WHILE
- | T_ENDWHILE
- | T_FOR
- | T_ENDFOR
- | T_FOREACH
- | T_ENDFOREACH
- | T_DECLARE
- | T_ENDDECLARE
- | T_AS
- | T_TRY
- | T_CATCH
- | T_FINALLY
- | T_THROW
- | T_USE
- | T_INSTEADOF
- | T_GLOBAL
- | T_VAR
- | T_UNSET
- | T_ISSET
- | T_EMPTY
- | T_CONTINUE
- | T_GOTO
- | T_FUNCTION
- | T_CONST
- | T_RETURN
- | T_PRINT
- | T_YIELD
- | T_LIST
- | T_SWITCH
- | T_ENDSWITCH
- | T_CASE
- | T_DEFAULT
- | T_BREAK
- | T_ARRAY
- | T_CALLABLE
- | T_EXTENDS
- | T_IMPLEMENTS
- | T_NAMESPACE
- | T_TRAIT
- | T_INTERFACE
- | T_CLASS
- | T_CLASS_C
- | T_TRAIT_C
- | T_FUNC_C
- | T_METHOD_C
- | T_LINE
- | T_FILE
- | T_DIR
- | T_NS_C
- | T_FN
- ;
-
-semi_reserved:
- reserved_non_modifiers
- | T_STATIC
- | T_ABSTRACT
- | T_FINAL
- | T_PRIVATE
- | T_PROTECTED
- | T_PUBLIC
- ;
-
-identifier:
- T_STRING (let ((r)) (setq r $1) r)
- | semi_reserved (let ((r)(zv)) (ZEND_LEX_TSTRING (lambda(return) (setq zv
return)))(setq r (ZEND_AST_CREATE_ZVAL zv)) r)
- ;
-
-top_statement_list:
- top_statement_list top_statement (let ((r)) (setq r (ZEND_AST_LIST_ADD $1
$2)) r)
- | empty (let ((r)) (setq r (ZEND_AST_CREATE_LIST 0
'phps-mode-parser--ZEND_AST_STMT_LIST)) r)
- ;
-
-namespace_name:
- T_STRING (let ((r)) (setq r $1) r)
- | namespace_name T_NS_SEPARATOR T_STRING (let ((r)) (setq r
(ZEND_AST_APPEND_STR $1 $3)) r)
- ;
-
-name:
- namespace_name (let ((r)) (setq r $1)(semantic-tag-put-attribute r 'attr
'phps-mode-parser--ZEND_NAME_NOT_FQ) r)
- | T_NAMESPACE T_NS_SEPARATOR namespace_name (let ((r)) (setq r
$3)(semantic-tag-put-attribute r 'attr 'phps-mode-parser--ZEND_NAME_RELATIVE) r)
- | T_NS_SEPARATOR namespace_name (let ((r)) (setq r
$2)(semantic-tag-put-attribute r 'attr 'phps-mode-parser--ZEND_NAME_FQ) r)
- ;
-
-top_statement:
- statement (let ((r)) (setq r $1) r)
- | function_declaration_statement (let ((r)) (setq r $1) r)
- | class_declaration_statement (let ((r)) (setq r $1) r)
- | trait_declaration_statement (let ((r)) (setq r $1) r)
- | interface_declaration_statement (let ((r)) (setq r $1) r)
- | T_HALT_COMPILER OPEN_PARENTHESIS CLOSE_PARENTHESIS SEMICOLON (let ((r))
(setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_HALT_COMPILER
(ZEND_AST_CREATE_ZVAL_FROM_LONG
(ZEND_GET_SCANNED_FILE_OFFSET))))(ZEND_STOP_LEXING) r)
- | T_NAMESPACE namespace_name SEMICOLON (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_NAMESPACE $2 nil))(RESET_DOC_COMMENT) r)
- | T_NAMESPACE namespace_name (let ((r)) (RESET_DOC_COMMENT) r)
OPEN_CURLY_BRACKET top_statement_list CLOSE_CURLY_BRACKET (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_NAMESPACE $2 $5)) r)
- | T_NAMESPACE (let ((r)) (RESET_DOC_COMMENT) r) OPEN_CURLY_BRACKET
top_statement_list CLOSE_CURLY_BRACKET (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_NAMESPACE nil $4)) r)
- | T_USE mixed_group_use_declaration SEMICOLON (let ((r)) (setq r $2) r)
- | T_USE use_type group_use_declaration SEMICOLON (let ((r)) (setq r
$3)(semantic-tag-put-attribute r 'attr $2) r)
- | T_USE use_declarations SEMICOLON (let ((r)) (setq r
$2)(semantic-tag-put-attribute r 'attr 'phps-mode-parser--ZEND_SYMBOL_CLASS) r)
- | T_USE use_type use_declarations SEMICOLON (let ((r)) (setq r
$3)(semantic-tag-put-attribute r 'attr $2) r)
- | T_CONST const_list SEMICOLON (let ((r)) (setq r $2) r)
- ;
-
-use_type:
- T_FUNCTION (let ((r)) (setq r 'phps-mode-parser--ZEND_SYMBOL_FUNCTION) r)
- | T_CONST (let ((r)) (setq r 'phps-mode-parser--ZEND_SYMBOL_CONST) r)
- ;
-
-group_use_declaration:
- namespace_name T_NS_SEPARATOR OPEN_CURLY_BRACKET
unprefixed_use_declarations possible_comma CLOSE_CURLY_BRACKET (let ((r)) (setq
r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_GROUP_USE $1 $4)) r)
- | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR OPEN_CURLY_BRACKET
unprefixed_use_declarations possible_comma CLOSE_CURLY_BRACKET (let ((r)) (setq
r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_GROUP_USE $2 $5)) r)
- ;
-
-mixed_group_use_declaration:
- namespace_name T_NS_SEPARATOR OPEN_CURLY_BRACKET inline_use_declarations
possible_comma CLOSE_CURLY_BRACKET (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_GROUP_USE $1 $4)) r)
- | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR OPEN_CURLY_BRACKET
inline_use_declarations possible_comma CLOSE_CURLY_BRACKET (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_GROUP_USE $2 $5)) r)
- ;
-
-possible_comma:
- empty
- | COMMA
- ;
-
-inline_use_declarations:
- inline_use_declarations COMMA inline_use_declaration (let ((r)) (setq r
(ZEND_AST_LIST_ADD $1 $3)) r)
- | inline_use_declaration (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_USE $1)) r)
- ;
-
-unprefixed_use_declarations:
- unprefixed_use_declarations COMMA unprefixed_use_declaration (let ((r))
(setq r (ZEND_AST_LIST_ADD $1 $3)) r)
- | unprefixed_use_declaration (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_USE $1)) r)
- ;
-
-use_declarations:
- use_declarations COMMA use_declaration (let ((r)) (setq r
(ZEND_AST_LIST_ADD $1 $3)) r)
- | use_declaration (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_USE $1)) r)
- ;
-
-inline_use_declaration:
- unprefixed_use_declaration (let ((r)) (setq r
$1)(semantic-tag-put-attribute r 'attr 'phps-mode-parser--ZEND_SYMBOL_CLASS) r)
- | use_type unprefixed_use_declaration (let ((r)) (setq r
$2)(semantic-tag-put-attribute r 'attr $1) r)
- ;
-
-unprefixed_use_declaration:
- namespace_name (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_USE_ELEM $1 nil)) r)
- | namespace_name T_AS T_STRING (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_USE_ELEM $1 $3)) r)
- ;
-
-use_declaration:
- unprefixed_use_declaration (let ((r)) (setq r $1) r)
- | T_NS_SEPARATOR unprefixed_use_declaration (let ((r)) (setq r $2) r)
- ;
-
-const_list:
- const_list COMMA const_decl (let ((r)) (setq r (ZEND_AST_LIST_ADD $1 $3))
r)
- | const_decl (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_CONST_DECL $1)) r)
- ;
-
-inner_statement_list:
- inner_statement_list inner_statement (let ((r)) (setq r (ZEND_AST_LIST_ADD
$1 $2)) r)
- | empty (let ((r)) (setq r (ZEND_AST_CREATE_LIST 0
'phps-mode-parser--ZEND_AST_STMT_LIST)) r)
- ;
-
-inner_statement:
- statement (let ((r)) (setq r $1) r)
- | function_declaration_statement (let ((r)) (setq r $1) r)
- | class_declaration_statement (let ((r)) (setq r $1) r)
- | trait_declaration_statement (let ((r)) (setq r $1) r)
- | interface_declaration_statement (let ((r)) (setq r $1) r)
- | T_HALT_COMPILER OPEN_PARENTHESIS CLOSE_PARENTHESIS SEMICOLON (let ((r))
(setq r nil)(ZEND_THROW_EXCEPTION phps-mode-parser--zend_ce_compile_error
"__HALT_COMPILER() can only be used from the outermost scope" 0)(setq r
'phps-mode-parser--YYERROR) r)
- ;
-
-statement:
- OPEN_CURLY_BRACKET inner_statement_list CLOSE_CURLY_BRACKET (let ((r))
(setq r $2) r)
- | if_stmt (let ((r)) (setq r $1) r)
- | alt_if_stmt (let ((r)) (setq r $1) r)
- | T_WHILE OPEN_PARENTHESIS expr CLOSE_PARENTHESIS while_statement (let
((r)) (setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_WHILE $3 $5)) r)
- | T_DO statement T_WHILE OPEN_PARENTHESIS expr CLOSE_PARENTHESIS SEMICOLON
(let ((r)) (setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_DO_WHILE $2
$5)) r)
- | T_FOR OPEN_PARENTHESIS for_exprs SEMICOLON for_exprs SEMICOLON for_exprs
CLOSE_PARENTHESIS for_statement (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_FOR $3 $5 $7 $9)) r)
- | T_SWITCH OPEN_PARENTHESIS expr CLOSE_PARENTHESIS switch_case_list (let
((r)) (setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_SWITCH $3 $5)) r)
- | T_BREAK optional_expr SEMICOLON (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_BREAK $2)) r)
- | T_CONTINUE optional_expr SEMICOLON (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_CONTINUE $2)) r)
- | T_RETURN optional_expr SEMICOLON (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_RETURN $2)) r)
- | T_GLOBAL global_var_list SEMICOLON (let ((r)) (setq r $2) r)
- | T_STATIC static_var_list SEMICOLON (let ((r)) (setq r $2) r)
- | T_ECHO echo_expr_list SEMICOLON (let ((r)) (setq r $2) r)
- | T_INLINE_HTML (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_ECHO $1)) r)
- | expr SEMICOLON (let ((r)) (setq r $1) r)
- | T_UNSET OPEN_PARENTHESIS unset_variables possible_comma
CLOSE_PARENTHESIS SEMICOLON (let ((r)) (setq r $3) r)
- | T_FOREACH OPEN_PARENTHESIS expr T_AS foreach_variable CLOSE_PARENTHESIS
foreach_statement (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_FOREACH $3 $5 nil $7)) r)
- | T_FOREACH OPEN_PARENTHESIS expr T_AS foreach_variable T_DOUBLE_ARROW
foreach_variable CLOSE_PARENTHESIS foreach_statement (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_FOREACH $3 $7 $5 $9)) r)
- | T_DECLARE OPEN_PARENTHESIS const_list CLOSE_PARENTHESIS (if
(!zend_handle_encoding_declaration($3))(let ((r)) (setq r
'phps-mode-parser--YYERROR) r)(let ((r)) r) declare_statement (let ((r)) (setq
r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_DECLARE $3 $6)) r)
- | SEMICOLON ;; empty statement
- (let ((r)) (setq r nil) r)
- | T_TRY OPEN_CURLY_BRACKET inner_statement_list CLOSE_CURLY_BRACKET
catch_list finally_statement (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_TRY $3 $5 $6)) r)
- | T_GOTO T_STRING SEMICOLON (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_GOTO $2)) r)
- | T_STRING COLON (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_LABEL $1)) r)
- ;
-
-catch_list:
- empty (let ((r)) (setq r (ZEND_AST_CREATE_LIST 0
'phps-mode-parser--ZEND_AST_CATCH_LIST)) r)
- | catch_list T_CATCH OPEN_PARENTHESIS catch_name_list optional_variable
CLOSE_PARENTHESIS OPEN_CURLY_BRACKET inner_statement_list CLOSE_CURLY_BRACKET
(let ((r)) (setq r (ZEND_AST_LIST_ADD $1 (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_CATCH $4 $5 $8))) r)
- ;
-
-catch_name_list:
- class_name (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_NAME_LIST $1)) r)
- | catch_name_list BITWISE_OR class_name (let ((r)) (setq r
(ZEND_AST_LIST_ADD $1 $3)) r)
- ;
-
-optional_variable:
- empty (let ((r)) (setq r nil) r)
- | T_VARIABLE (let ((r)) (setq r $1) r)
- ;
-
-finally_statement:
- empty (let ((r)) (setq r nil) r)
- | T_FINALLY OPEN_CURLY_BRACKET inner_statement_list CLOSE_CURLY_BRACKET
(let ((r)) (setq r $3) r)
- ;
-
-unset_variables:
- unset_variable (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_STMT_LIST $1)) r)
- | unset_variables COMMA unset_variable (let ((r)) (setq r
(ZEND_AST_LIST_ADD $1 $3)) r)
- ;
-
-unset_variable:
- variable (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_UNSET $1)) r)
- ;
-
-function_declaration_statement:
- function returns_ref T_STRING backup_doc_comment OPEN_PARENTHESIS
parameter_list CLOSE_PARENTHESIS return_type backup_fn_flags OPEN_CURLY_BRACKET
inner_statement_list CLOSE_CURLY_BRACKET backup_fn_flags (let ((r)) (setq r
(ZEND_AST_CREATE_DECL 'phps-mode-parser--ZEND_AST_FUNC_DECL (logior $2 $13) $1
$4 (ZEND_AST_GET_STR $3) $6 nil $11 $8))(CG 'phps-mode-parser--extra_fn_flags
$9) r)
- ;
-
-is_reference:
- empty (let ((r)) (setq r 0) r)
- | BITWISE_AND (let ((r)) (setq r 'phps-mode-parser--ZEND_PARAM_REF) r)
- ;
-
-is_variadic:
- empty (let ((r)) (setq r 0) r)
- | T_ELLIPSIS (let ((r)) (setq r 'phps-mode-parser--ZEND_PARAM_VARIADIC) r)
- ;
-
-class_declaration_statement:
- class_modifiers T_CLASS (let ((r)) r) T_STRING extends_from
implements_list backup_doc_comment OPEN_CURLY_BRACKET class_statement_list
CLOSE_CURLY_BRACKET (let ((r)) (setq r (ZEND_AST_CREATE_DECL
'phps-mode-parser--ZEND_AST_CLASS $1 $3 $7 (ZEND_AST_GET_STR $4) $5 $6 $9 nil))
r)
- | T_CLASS (let ((r)) r) T_STRING extends_from implements_list
backup_doc_comment OPEN_CURLY_BRACKET class_statement_list CLOSE_CURLY_BRACKET
(let ((r)) (setq r (ZEND_AST_CREATE_DECL 'phps-mode-parser--ZEND_AST_CLASS 0 $2
$6 (ZEND_AST_GET_STR $3) $4 $5 $8 nil)) r)
- ;
-
-class_modifiers:
- class_modifier (let ((r)) (setq r $1) r)
- | class_modifiers class_modifier ($$ = zend_add_class_modifier($1, $2);
if (!$$)(let ((r)) (setq r 'phps-mode-parser--YYERROR) r)(let ((r)) r)
- ;
-
-class_modifier:
- T_ABSTRACT (let ((r)) (setq r
'phps-mode-parser--ZEND_ACC_EXPLICIT_ABSTRACT_CLASS) r)
- | T_FINAL (let ((r)) (setq r 'phps-mode-parser--ZEND_ACC_FINAL) r)
- ;
-
-trait_declaration_statement:
- T_TRAIT (let ((r)) r) T_STRING backup_doc_comment OPEN_CURLY_BRACKET
class_statement_list CLOSE_CURLY_BRACKET (let ((r)) (setq r
(ZEND_AST_CREATE_DECL 'phps-mode-parser--ZEND_AST_CLASS
'phps-mode-parser--ZEND_ACC_TRAIT $2 $4 (ZEND_AST_GET_STR $3) nil nil $6 nil))
r)
- ;
-
-interface_declaration_statement:
- T_INTERFACE (let ((r)) r) T_STRING interface_extends_list
backup_doc_comment OPEN_CURLY_BRACKET class_statement_list CLOSE_CURLY_BRACKET
(let ((r)) (setq r (ZEND_AST_CREATE_DECL 'phps-mode-parser--ZEND_AST_CLASS
'phps-mode-parser--ZEND_ACC_INTERFACE $2 $5 (ZEND_AST_GET_STR $3) nil $4 $7
nil)) r)
- ;
-
-extends_from:
- empty (let ((r)) (setq r nil) r)
- | T_EXTENDS class_name (let ((r)) (setq r $2) r)
- ;
-
-interface_extends_list:
- empty (let ((r)) (setq r nil) r)
- | T_EXTENDS class_name_list (let ((r)) (setq r $2) r)
- ;
-
-implements_list:
- empty (let ((r)) (setq r nil) r)
- | T_IMPLEMENTS class_name_list (let ((r)) (setq r $2) r)
- ;
-
-foreach_variable:
- variable (let ((r)) (setq r $1) r)
- | BITWISE_AND variable (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_REF $2)) r)
- | T_LIST OPEN_PARENTHESIS array_pair_list CLOSE_PARENTHESIS (let ((r))
(setq r $3)(semantic-tag-put-attribute r 'attr
'phps-mode-parser--ZEND_ARRAY_SYNTAX_LIST) r)
- | OPEN_SQUARE_BRACKET array_pair_list CLOSE_SQUARE_BRACKET (let ((r))
(setq r $2)(semantic-tag-put-attribute r 'attr
'phps-mode-parser--ZEND_ARRAY_SYNTAX_SHORT) r)
- ;
-
-for_statement:
- statement (let ((r)) (setq r $1) r)
- | COLON inner_statement_list T_ENDFOR SEMICOLON (let ((r)) (setq r $2) r)
- ;
-
-foreach_statement:
- statement (let ((r)) (setq r $1) r)
- | COLON inner_statement_list T_ENDFOREACH SEMICOLON (let ((r)) (setq r $2)
r)
- ;
-
-declare_statement:
- statement (let ((r)) (setq r $1) r)
- | COLON inner_statement_list T_ENDDECLARE SEMICOLON (let ((r)) (setq r $2)
r)
- ;
-
-switch_case_list:
- OPEN_CURLY_BRACKET case_list CLOSE_CURLY_BRACKET (let ((r)) (setq r $2) r)
- | OPEN_CURLY_BRACKET SEMICOLON case_list CLOSE_CURLY_BRACKET (let ((r))
(setq r $3) r)
- | COLON case_list T_ENDSWITCH SEMICOLON (let ((r)) (setq r $2) r)
- | COLON SEMICOLON case_list T_ENDSWITCH SEMICOLON (let ((r)) (setq r $3) r)
- ;
-
-case_list:
- empty (let ((r)) (setq r (ZEND_AST_CREATE_LIST 0
'phps-mode-parser--ZEND_AST_SWITCH_LIST)) r)
- | case_list T_CASE expr case_separator inner_statement_list (let ((r))
(setq r (ZEND_AST_LIST_ADD $1 (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_SWITCH_CASE $3 $5))) r)
- | case_list T_DEFAULT case_separator inner_statement_list (let ((r)) (setq
r (ZEND_AST_LIST_ADD $1 (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_SWITCH_CASE nil $4))) r)
- ;
-
-case_separator:
- COLON
- | SEMICOLON
- ;
-
-while_statement:
- statement (let ((r)) (setq r $1) r)
- | COLON inner_statement_list T_ENDWHILE SEMICOLON (let ((r)) (setq r $2) r)
- ;
-
-if_stmt_without_else:
- T_IF OPEN_PARENTHESIS expr CLOSE_PARENTHESIS statement (let ((r)) (setq r
(ZEND_AST_CREATE_LIST 1 'phps-mode-parser--ZEND_AST_IF (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_IF_ELEM $3 $5))) r)
- | if_stmt_without_else T_ELSEIF OPEN_PARENTHESIS expr CLOSE_PARENTHESIS
statement (let ((r)) (setq r (ZEND_AST_LIST_ADD $1 (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_IF_ELEM $4 $6))) r)
- ;
-
-if_stmt:
- if_stmt_without_else prec T_NOELSE (let ((r)) (setq r $1) r)
- | if_stmt_without_else T_ELSE statement (let ((r)) (setq r
(ZEND_AST_LIST_ADD $1 (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_IF_ELEM nil
$3))) r)
- ;
-
-alt_if_stmt_without_else:
- T_IF OPEN_PARENTHESIS expr CLOSE_PARENTHESIS COLON inner_statement_list
(let ((r)) (setq r (ZEND_AST_CREATE_LIST 1 'phps-mode-parser--ZEND_AST_IF
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_IF_ELEM $3 $6))) r)
- | alt_if_stmt_without_else T_ELSEIF OPEN_PARENTHESIS expr
CLOSE_PARENTHESIS COLON inner_statement_list (let ((r)) (setq r
(ZEND_AST_LIST_ADD $1 (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_IF_ELEM $4
$7))) r)
- ;
-
-alt_if_stmt:
- alt_if_stmt_without_else T_ENDIF SEMICOLON (let ((r)) (setq r $1) r)
- | alt_if_stmt_without_else T_ELSE COLON inner_statement_list T_ENDIF
SEMICOLON (let ((r)) (setq r (ZEND_AST_LIST_ADD $1 (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_IF_ELEM nil $4))) r)
- ;
-
-parameter_list:
- non_empty_parameter_list possible_comma (let ((r)) (setq r $1) r)
- | empty (let ((r)) (setq r (ZEND_AST_CREATE_LIST 0
'phps-mode-parser--ZEND_AST_PARAM_LIST)) r)
- ;
-
-non_empty_parameter_list:
- parameter (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_PARAM_LIST $1)) r)
- | non_empty_parameter_list COMMA parameter (let ((r)) (setq r
(ZEND_AST_LIST_ADD $1 $3)) r)
- ;
-
-parameter:
- optional_type_without_static is_reference is_variadic T_VARIABLE (let
((r)) (setq r (ZEND_AST_CREATE_EX 'phps-mode-parser--ZEND_AST_PARAM (logior $2
$3) $1 $4 nil)) r)
- | optional_type_without_static is_reference is_variadic T_VARIABLE ASSIGN
expr (let ((r)) (setq r (ZEND_AST_CREATE_EX 'phps-mode-parser--ZEND_AST_PARAM
(logior $2 $3) $1 $4 $6)) r)
- ;
-
-optional_type_without_static:
- empty (let ((r)) (setq r nil) r)
- | type_expr_without_static (let ((r)) (setq r $1) r)
- ;
-
-type_expr:
- type (let ((r)) (setq r $1) r)
- | QUESTION_MARK type (let ((r)) (setq r $2)(semantic-tag-put-attribute r
'attr (logior (semantic-tag-get-attribute r 'attr)
'phps-mode-parser--ZEND_TYPE_NULLABLE)) r)
- | union_type (let ((r)) (setq r $1) r)
- ;
-
-type:
- type_without_static (let ((r)) (setq r $1) r)
- | T_STATIC (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_TYPE 'phps-mode-parser--IS_STATIC)) r)
- ;
-
-union_type:
- type BITWISE_OR type (let ((r)) (setq r (ZEND_AST_CREATE_LIST 2
'phps-mode-parser--ZEND_AST_TYPE_UNION $1 $3)) r)
- | union_type BITWISE_OR type (let ((r)) (setq r (ZEND_AST_LIST_ADD $1 $3))
r)
- ;
-
-type_expr_without_static:
- type_without_static (let ((r)) (setq r $1) r)
- | QUESTION_MARK type_without_static (let ((r)) (setq r
$2)(semantic-tag-put-attribute r 'attr (logior (semantic-tag-get-attribute r
'attr) 'phps-mode-parser--ZEND_TYPE_NULLABLE)) r)
- | union_type_without_static (let ((r)) (setq r $1) r)
- ;
-
-type_without_static:
- T_ARRAY (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_TYPE 'phps-mode-parser--IS_ARRAY)) r)
- | T_CALLABLE (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_TYPE 'phps-mode-parser--IS_CALLABLE)) r)
- | name (let ((r)) (setq r $1) r)
- ;
-
-union_type_without_static:
- type_without_static BITWISE_OR type_without_static (let ((r)) (setq r
(ZEND_AST_CREATE_LIST 2 'phps-mode-parser--ZEND_AST_TYPE_UNION $1 $3)) r)
- | union_type_without_static BITWISE_OR type_without_static (let ((r))
(setq r (ZEND_AST_LIST_ADD $1 $3)) r)
- ;
-
-return_type:
- empty (let ((r)) (setq r nil) r)
- | COLON type_expr (let ((r)) (setq r $2) r)
- ;
-
-argument_list:
- OPEN_PARENTHESIS CLOSE_PARENTHESIS (let ((r)) (setq r
(ZEND_AST_CREATE_LIST 0 'phps-mode-parser--ZEND_AST_ARG_LIST)) r)
- | OPEN_PARENTHESIS non_empty_argument_list possible_comma
CLOSE_PARENTHESIS (let ((r)) (setq r $2) r)
- ;
-
-non_empty_argument_list:
- argument (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_ARG_LIST $1)) r)
- | non_empty_argument_list COMMA argument (let ((r)) (setq r
(ZEND_AST_LIST_ADD $1 $3)) r)
- ;
-
-argument:
- expr (let ((r)) (setq r $1) r)
- | T_ELLIPSIS expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_UNPACK $2)) r)
- ;
-
-global_var_list:
- global_var_list COMMA global_var (let ((r)) (setq r (ZEND_AST_LIST_ADD $1
$3)) r)
- | global_var (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_STMT_LIST $1)) r)
- ;
-
-global_var:
- simple_variable (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_GLOBAL (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_VAR $1))) r)
- ;
-
-static_var_list:
- static_var_list COMMA static_var (let ((r)) (setq r (ZEND_AST_LIST_ADD $1
$3)) r)
- | static_var (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_STMT_LIST $1)) r)
- ;
-
-static_var:
- T_VARIABLE (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_STATIC $1 nil)) r)
- | T_VARIABLE ASSIGN expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_STATIC $1 $3)) r)
- ;
-
-class_statement_list:
- class_statement_list class_statement (let ((r)) (setq r (ZEND_AST_LIST_ADD
$1 $2)) r)
- | empty (let ((r)) (setq r (ZEND_AST_CREATE_LIST 0
'phps-mode-parser--ZEND_AST_STMT_LIST)) r)
- ;
-
-class_statement:
- variable_modifiers optional_type_without_static property_list SEMICOLON
(let ((r)) (setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_PROP_GROUP $2
$3))(semantic-tag-put-attribute r 'attr $1) r)
- | method_modifiers T_CONST class_const_list SEMICOLON (let ((r)) (setq r
$3)(semantic-tag-put-attribute r 'attr $1) r)
- | T_USE class_name_list trait_adaptations (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_USE_TRAIT $2 $3)) r)
- | method_modifiers function returns_ref identifier backup_doc_comment
OPEN_PARENTHESIS parameter_list CLOSE_PARENTHESIS return_type backup_fn_flags
method_body backup_fn_flags (let ((r)) (setq r (ZEND_AST_CREATE_DECL
'phps-mode-parser--ZEND_AST_METHOD (logior $3 (logior $1 $12)) $2 $5
(ZEND_AST_GET_STR $4) $7 nil $11 $9))(CG 'phps-mode-parser--extra_fn_flags $10)
r)
- ;
-
-class_name_list:
- class_name (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_NAME_LIST $1)) r)
- | class_name_list COMMA class_name (let ((r)) (setq r (ZEND_AST_LIST_ADD
$1 $3)) r)
- ;
-
-trait_adaptations:
- SEMICOLON (let ((r)) (setq r nil) r)
- | OPEN_CURLY_BRACKET CLOSE_CURLY_BRACKET (let ((r)) (setq r nil) r)
- | OPEN_CURLY_BRACKET trait_adaptation_list CLOSE_CURLY_BRACKET (let ((r))
(setq r $2) r)
- ;
-
-trait_adaptation_list:
- trait_adaptation (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_TRAIT_ADAPTATIONS $1)) r)
- | trait_adaptation_list trait_adaptation (let ((r)) (setq r
(ZEND_AST_LIST_ADD $1 $2)) r)
- ;
-
-trait_adaptation:
- trait_precedence SEMICOLON (let ((r)) (setq r $1) r)
- | trait_alias SEMICOLON (let ((r)) (setq r $1) r)
- ;
-
-trait_precedence:
- absolute_trait_method_reference T_INSTEADOF class_name_list (let ((r))
(setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_TRAIT_PRECEDENCE $1 $3)) r)
- ;
-
-trait_alias:
- trait_method_reference T_AS T_STRING (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_TRAIT_ALIAS $1 $3)) r)
- | trait_method_reference T_AS reserved_non_modifiers (let ((r)(zv))
(ZEND_LEX_TSTRING (lambda(return) (setq zv return)))(setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_TRAIT_ALIAS $1 (ZEND_AST_CREATE_ZVAL zv))) r)
- | trait_method_reference T_AS member_modifier identifier (let ((r)) (setq
r (ZEND_AST_CREATE_EX 'phps-mode-parser--ZEND_AST_TRAIT_ALIAS $3 $1 $4)) r)
- | trait_method_reference T_AS member_modifier (let ((r)) (setq r
(ZEND_AST_CREATE_EX 'phps-mode-parser--ZEND_AST_TRAIT_ALIAS $3 $1 nil)) r)
- ;
-
-trait_method_reference:
- identifier (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_METHOD_REFERENCE nil $1)) r)
- | absolute_trait_method_reference (let ((r)) (setq r $1) r)
- ;
-
-absolute_trait_method_reference:
- class_name T_PAAMAYIM_NEKUDOTAYIM identifier (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_METHOD_REFERENCE $1 $3)) r)
- ;
-
-method_body:
- SEMICOLON ;; abstract method
- (let ((r)) (setq r nil) r)
- | OPEN_CURLY_BRACKET inner_statement_list CLOSE_CURLY_BRACKET (let ((r))
(setq r $2) r)
- ;
-
-variable_modifiers:
- non_empty_member_modifiers (let ((r)) (setq r $1) r)
- | T_VAR (let ((r)) (setq r 'phps-mode-parser--ZEND_ACC_PUBLIC) r)
- ;
-
-method_modifiers:
- empty (let ((r)) (setq r 'phps-mode-parser--ZEND_ACC_PUBLIC) r)
- | non_empty_member_modifiers ($$ = $1; if (!($$ & ZEND_ACC_PPP_MASK))(let
((r)) (setq r (logior r 'phps-mode-parser--ZEND_ACC_PUBLIC)) r)(let ((r)) r)
- ;
-
-non_empty_member_modifiers:
- member_modifier (let ((r)) (setq r $1) r)
- | non_empty_member_modifiers member_modifier ($$ =
zend_add_member_modifier($1, $2); if (!$$)(let ((r)) (setq r
'phps-mode-parser--YYERROR) r)(let ((r)) r)
- ;
-
-member_modifier:
- T_PUBLIC (let ((r)) (setq r 'phps-mode-parser--ZEND_ACC_PUBLIC) r)
- | T_PROTECTED (let ((r)) (setq r 'phps-mode-parser--ZEND_ACC_PROTECTED) r)
- | T_PRIVATE (let ((r)) (setq r 'phps-mode-parser--ZEND_ACC_PRIVATE) r)
- | T_STATIC (let ((r)) (setq r 'phps-mode-parser--ZEND_ACC_STATIC) r)
- | T_ABSTRACT (let ((r)) (setq r 'phps-mode-parser--ZEND_ACC_ABSTRACT) r)
- | T_FINAL (let ((r)) (setq r 'phps-mode-parser--ZEND_ACC_FINAL) r)
- ;
-
-property_list:
- property_list COMMA property (let ((r)) (setq r (ZEND_AST_LIST_ADD $1 $3))
r)
- | property (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_PROP_DECL $1)) r)
- ;
-
-property:
- T_VARIABLE backup_doc_comment (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_PROP_ELEM $1 nil (if $2
(ZEND_AST_CREATE_ZVAL_FROM_STR $2) nil))) r)
- | T_VARIABLE ASSIGN expr backup_doc_comment (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_PROP_ELEM $1 $3 (if $4
(ZEND_AST_CREATE_ZVAL_FROM_STR $4) nil))) r)
- ;
-
-class_const_list:
- class_const_list COMMA class_const_decl (let ((r)) (setq r
(ZEND_AST_LIST_ADD $1 $3)) r)
- | class_const_decl (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_CLASS_CONST_DECL $1)) r)
- ;
-
-class_const_decl:
- identifier ASSIGN expr backup_doc_comment (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_CONST_ELEM $1 $3 (if $4
(ZEND_AST_CREATE_ZVAL_FROM_STR $4) nil))) r)
- ;
-
-const_decl:
- T_STRING ASSIGN expr backup_doc_comment (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_CONST_ELEM $1 $3 (if $4
(ZEND_AST_CREATE_ZVAL_FROM_STR $4) nil))) r)
- ;
-
-echo_expr_list:
- echo_expr_list COMMA echo_expr (let ((r)) (setq r (ZEND_AST_LIST_ADD $1
$3)) r)
- | echo_expr (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_STMT_LIST $1)) r)
- ;
-
-echo_expr:
- expr (let ((r)) (setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_ECHO
$1)) r)
- ;
-
-for_exprs:
- empty (let ((r)) (setq r nil) r)
- | non_empty_for_exprs (let ((r)) (setq r $1) r)
- ;
-
-non_empty_for_exprs:
- non_empty_for_exprs COMMA expr (let ((r)) (setq r (ZEND_AST_LIST_ADD $1
$3)) r)
- | expr (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_EXPR_LIST $1)) r)
- ;
-
-anonymous_class:
- T_CLASS (let ((r)) r) ctor_arguments extends_from implements_list
backup_doc_comment OPEN_CURLY_BRACKET class_statement_list CLOSE_CURLY_BRACKET
(let ((r)(decl)) (setq phps-mode-parser--decl (ZEND_AST_CREATE_DECL
'phps-mode-parser--ZEND_AST_CLASS 'phps-mode-parser--ZEND_ACC_ANON_CLASS $2 $6
nil $4 $5 $8 nil))(setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_NEW
phps-mode-parser--decl $3)) r)
- ;
-
-new_expr:
- T_NEW class_name_reference ctor_arguments (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_NEW $2 $3)) r)
- | T_NEW anonymous_class (let ((r)) (setq r $2) r)
- ;
-
-expr:
- variable (let ((r)) (setq r $1) r)
- | T_LIST OPEN_PARENTHESIS array_pair_list CLOSE_PARENTHESIS ASSIGN expr
(let ((r)) (semantic-tag-put-attribute $3 'attr
'phps-mode-parser--ZEND_ARRAY_SYNTAX_LIST)(setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_ASSIGN $3 $6)) r)
- | OPEN_SQUARE_BRACKET array_pair_list CLOSE_SQUARE_BRACKET ASSIGN expr
(let ((r)) (semantic-tag-put-attribute $2 'attr
'phps-mode-parser--ZEND_ARRAY_SYNTAX_SHORT)(setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_ASSIGN $2 $5)) r)
- | variable ASSIGN expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_ASSIGN $1 $3)) r)
- | variable ASSIGN BITWISE_AND variable (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_ASSIGN_REF $1 $4)) r)
- | T_CLONE expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_CLONE $2)) r)
- | variable T_PLUS_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--ZEND_ADD $1 $3)) r)
- | variable T_MINUS_EQUAL expr (let ((r)) (setq r
(ZEND_AST_CREATE_ASSIGN_OP 'phps-mode-parser--ZEND_SUB $1 $3)) r)
- | variable T_MUL_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--ZEND_MUL $1 $3)) r)
- | variable T_POW_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--ZEND_POW $1 $3)) r)
- | variable T_DIV_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--ZEND_DIV $1 $3)) r)
- | variable T_CONCAT_EQUAL expr (let ((r)) (setq r
(ZEND_AST_CREATE_ASSIGN_OP 'phps-mode-parser--ZEND_CONCAT $1 $3)) r)
- | variable T_MOD_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--ZEND_MOD $1 $3)) r)
- | variable T_AND_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--ZEND_BW_AND $1 $3)) r)
- | variable T_OR_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--ZEND_BW_OR $1 $3)) r)
- | variable T_XOR_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--ZEND_BW_XOR $1 $3)) r)
- | variable T_SL_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--ZEND_SL $1 $3)) r)
- | variable T_SR_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--ZEND_SR $1 $3)) r)
- | variable T_COALESCE_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_ASSIGN_COALESCE $1 $3)) r)
- | variable T_INC (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_POST_INC $1)) r)
- | T_INC variable (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_PRE_INC $2)) r)
- | variable T_DEC (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_POST_DEC $1)) r)
- | T_DEC variable (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_PRE_DEC $2)) r)
- | expr T_BOOLEAN_OR expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_OR $1 $3)) r)
- | expr T_BOOLEAN_AND expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_AND $1 $3)) r)
- | expr T_LOGICAL_OR expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_OR $1 $3)) r)
- | expr T_LOGICAL_AND expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_AND $1 $3)) r)
- | expr T_LOGICAL_XOR expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_BOOL_XOR $1 $3)) r)
- | expr BITWISE_OR expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_BW_OR $1 $3)) r)
- | expr BITWISE_AND expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_BW_AND $1 $3)) r)
- | expr POW expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_BW_XOR $1 $3)) r)
- | expr DOT expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_CONCAT $1 $3)) r)
- | expr ADDITION expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_ADD $1 $3)) r)
- | expr SUBTRACTION expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_SUB $1 $3)) r)
- | expr MULTIPLICATION expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_MUL $1 $3)) r)
- | expr T_POW expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_POW $1 $3)) r)
- | expr DIVISION expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_DIV $1 $3)) r)
- | expr MODULO expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_MOD $1 $3)) r)
- | expr T_SL expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_SL $1 $3)) r)
- | expr T_SR expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_SR $1 $3)) r)
- | ADDITION expr prec UNARY (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_UNARY_PLUS $2)) r)
- | SUBTRACTION expr prec UNARY (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_UNARY_MINUS $2)) r)
- | NEGATION expr (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_UNARY_OP 'phps-mode-parser--ZEND_BOOL_NOT $2)) r)
- | UNARY expr (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_UNARY_OP 'phps-mode-parser--ZEND_BW_NOT $2)) r)
- | expr T_IS_IDENTICAL expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_IS_IDENTICAL $1 $3)) r)
- | expr T_IS_NOT_IDENTICAL expr (let ((r)) (setq r
(ZEND_AST_CREATE_BINARY_OP 'phps-mode-parser--ZEND_IS_NOT_IDENTICAL $1 $3)) r)
- | expr T_IS_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_IS_EQUAL $1 $3)) r)
- | expr T_IS_NOT_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_IS_NOT_EQUAL $1 $3)) r)
- | expr LESSER_THAN expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_IS_SMALLER $1 $3)) r)
- | expr T_IS_SMALLER_OR_EQUAL expr (let ((r)) (setq r
(ZEND_AST_CREATE_BINARY_OP 'phps-mode-parser--ZEND_IS_SMALLER_OR_EQUAL $1 $3))
r)
- | expr GREATER_THAN expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_GREATER $1 $3)) r)
- | expr T_IS_GREATER_OR_EQUAL expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_GREATER_EQUAL $1 $3)) r)
- | expr T_SPACESHIP expr (let ((r)) (setq r (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--ZEND_SPACESHIP $1 $3)) r)
- | expr T_INSTANCEOF class_name_reference (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_INSTANCEOF $1 $3)) r)
- | OPEN_PARENTHESIS expr CLOSE_PARENTHESIS (let ((r)) (setq r $2)(if (equal
(semantic-tag-get-attribute r 'kind) 'phps-mode-parser--ZEND_AST_CONDITIONAL)
(semantic-tag-put-attribute r 'attr
'phps-mode-parser--ZEND_PARENTHESIZED_CONDITIONAL)) r)
- | new_expr (let ((r)) (setq r $1) r)
- | expr QUESTION_MARK expr COLON expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_CONDITIONAL $1 $3 $5)) r)
- | expr QUESTION_MARK COLON expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_CONDITIONAL $1 nil $4)) r)
- | expr T_COALESCE expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_COALESCE $1 $3)) r)
- | internal_functions_in_yacc (let ((r)) (setq r $1) r)
- | T_INT_CAST expr (let ((r)) (setq r (ZEND_AST_CREATE_CAST
'phps-mode-parser--IS_LONG $2)) r)
- | T_DOUBLE_CAST expr (let ((r)) (setq r (ZEND_AST_CREATE_CAST
'phps-mode-parser--IS_DOUBLE $2)) r)
- | T_STRING_CAST expr (let ((r)) (setq r (ZEND_AST_CREATE_CAST
'phps-mode-parser--IS_STRING $2)) r)
- | T_ARRAY_CAST expr (let ((r)) (setq r (ZEND_AST_CREATE_CAST
'phps-mode-parser--IS_ARRAY $2)) r)
- | T_OBJECT_CAST expr (let ((r)) (setq r (ZEND_AST_CREATE_CAST
'phps-mode-parser--IS_OBJECT $2)) r)
- | T_BOOL_CAST expr (let ((r)) (setq r (ZEND_AST_CREATE_CAST
'phps-mode-parser--_IS_BOOL $2)) r)
- | T_UNSET_CAST expr (let ((r)) (setq r (ZEND_AST_CREATE_CAST
'phps-mode-parser--IS_NULL $2)) r)
- | T_EXIT exit_expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_EXIT $2)) r)
- | AT expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_SILENCE $2)) r)
- | scalar (let ((r)) (setq r $1) r)
- | BACKTICK backticks_expr BACKTICK (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_SHELL_EXEC $2)) r)
- | T_PRINT expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_PRINT $2)) r)
- | T_YIELD (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_YIELD nil nil))(CG
'phps-mode-parser--extra_fn_flags (logior (PHPS-MODE-PARSER--CG
'phps-mode-parser--extra_fn_flags) 'phps-mode-parser--ZEND_ACC_GENERATOR)) r)
- | T_YIELD expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_YIELD $2 nil))(CG 'phps-mode-parser--extra_fn_flags
(logior (PHPS-MODE-PARSER--CG 'phps-mode-parser--extra_fn_flags)
'phps-mode-parser--ZEND_ACC_GENERATOR)) r)
- | T_YIELD expr T_DOUBLE_ARROW expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_YIELD $4 $2))(CG 'phps-mode-parser--extra_fn_flags
(logior (PHPS-MODE-PARSER--CG 'phps-mode-parser--extra_fn_flags)
'phps-mode-parser--ZEND_ACC_GENERATOR)) r)
- | T_YIELD_FROM expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_YIELD_FROM $2))(CG
'phps-mode-parser--extra_fn_flags (logior (PHPS-MODE-PARSER--CG
'phps-mode-parser--extra_fn_flags) 'phps-mode-parser--ZEND_ACC_GENERATOR)) r)
- | T_THROW expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_THROW $2)) r)
- | inline_function (let ((r)) (setq r $1) r)
- | T_STATIC inline_function (let ((r)) (setq r
$2)(semantic-tag-put-attribute r 'flags (logior (semantic-tag-get-attribute r
'flags) 'phps-mode-parser--ZEND_ACC_STATIC)) r)
- ;
-
-inline_function:
- function returns_ref backup_doc_comment OPEN_PARENTHESIS parameter_list
CLOSE_PARENTHESIS lexical_vars return_type backup_fn_flags OPEN_CURLY_BRACKET
inner_statement_list CLOSE_CURLY_BRACKET backup_fn_flags (let ((r)) (setq r
(ZEND_AST_CREATE_DECL 'phps-mode-parser--ZEND_AST_CLOSURE (logior $2 $13) $1 $3
(ZEND_STRING_INIT "{closure}" (- (SIZEOF "{closure}") 1) 0) $5 $7 $11 $8))(CG
'phps-mode-parser--extra_fn_flags $9) r)
- | fn returns_ref OPEN_PARENTHESIS parameter_list CLOSE_PARENTHESIS
return_type backup_doc_comment T_DOUBLE_ARROW backup_fn_flags backup_lex_pos
expr backup_fn_flags (let ((r)) (setq r (ZEND_AST_CREATE_DECL
'phps-mode-parser--ZEND_AST_ARROW_FUNC (logior $2 $12) $1 $7 (ZEND_STRING_INIT
"{closure}" (- (SIZEOF "{closure}") 1) 0) $4 nil (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_RETURN $11) $6))(semantic-tag-put-attribute r
'lex_pos $10)(CG 'phps-mode-parser--extra_fn_flags $9) r)
- ;
-
-fn:
- T_FN (let ((r)) (setq r (CG phps-mode-parser--zend_lineno)) r)
- ;
-
-function:
- T_FUNCTION (let ((r)) (setq r (CG phps-mode-parser--zend_lineno)) r)
- ;
-
-backup_doc_comment:
- empty (let ((r)) (setq r (CG phps-mode-parser--doc_comment))(CG
'phps-mode-parser--doc_comment nil) r)
- ;
-
-backup_fn_flags:
- prec PREC_ARROW_FUNCTION empty (let ((r)) (setq r (CG
phps-mode-parser--extra_fn_flags))(CG 'phps-mode-parser--extra_fn_flags 0) r)
- ;
-
-backup_lex_pos:
- empty (let ((r)) (setq r (LANG_SCNG phps-mode-parser--yy_text)) r)
- ;
-
-returns_ref:
- empty (let ((r)) (setq r 0) r)
- | BITWISE_AND (let ((r)) (setq r
'phps-mode-parser--ZEND_ACC_RETURN_REFERENCE) r)
- ;
-
-lexical_vars:
- empty (let ((r)) (setq r nil) r)
- | T_USE OPEN_PARENTHESIS lexical_var_list CLOSE_PARENTHESIS (let ((r))
(setq r $3) r)
- ;
-
-lexical_var_list:
- lexical_var_list COMMA lexical_var (let ((r)) (setq r (ZEND_AST_LIST_ADD
$1 $3)) r)
- | lexical_var (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_CLOSURE_USES $1)) r)
- ;
-
-lexical_var:
- T_VARIABLE (let ((r)) (setq r $1) r)
- | BITWISE_AND T_VARIABLE (let ((r)) (setq r $2)(semantic-tag-put-attribute
r 'attr 'phps-mode-parser--ZEND_BIND_REF) r)
- ;
-
-function_call:
- name argument_list (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_CALL $1 $2)) r)
- | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list (let ((r))
(setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_STATIC_CALL $1 $3 $4)) r)
- | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list
(let ((r)) (setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_STATIC_CALL $1
$3 $4)) r)
- | callable_expr argument_list (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_CALL $1 $2)) r)
- ;
-
-class_name:
- T_STATIC (let ((r)(zv)) (ZVAL_INTERNED_STR (lambda(return) (setq zv
return)) (ZSTR_KNOWN 'phps-mode-parser--ZEND_STR_STATIC))(setq r
(ZEND_AST_CREATE_ZVAL_EX zv 'phps-mode-parser--ZEND_NAME_NOT_FQ)) r)
- | name (let ((r)) (setq r $1) r)
- ;
-
-class_name_reference:
- class_name (let ((r)) (setq r $1) r)
- | new_variable (let ((r)) (setq r $1) r)
- | OPEN_PARENTHESIS expr CLOSE_PARENTHESIS (let ((r)) (setq r $2) r)
- ;
-
-exit_expr:
- empty (let ((r)) (setq r nil) r)
- | OPEN_PARENTHESIS optional_expr CLOSE_PARENTHESIS (let ((r)) (setq r $2)
r)
- ;
-
-backticks_expr:
- empty (let ((r)) (setq r (ZEND_AST_CREATE_ZVAL_FROM_STR
(ZSTR_EMPTY_ALLOC))) r)
- | T_ENCAPSED_AND_WHITESPACE (let ((r)) (setq r $1) r)
- | encaps_list (let ((r)) (setq r $1) r)
- ;
-
-ctor_arguments:
- empty (let ((r)) (setq r (ZEND_AST_CREATE_LIST 0
'phps-mode-parser--ZEND_AST_ARG_LIST)) r)
- | argument_list (let ((r)) (setq r $1) r)
- ;
-
-dereferencable_scalar:
- T_ARRAY OPEN_PARENTHESIS array_pair_list CLOSE_PARENTHESIS (let ((r))
(setq r $3)(semantic-tag-put-attribute r 'attr
'phps-mode-parser--ZEND_ARRAY_SYNTAX_LONG) r)
- | OPEN_SQUARE_BRACKET array_pair_list CLOSE_SQUARE_BRACKET (let ((r))
(setq r $2)(semantic-tag-put-attribute r 'attr
'phps-mode-parser--ZEND_ARRAY_SYNTAX_SHORT) r)
- | T_CONSTANT_ENCAPSED_STRING (let ((r)) (setq r $1) r)
- | DOUBLE_QUOTE encaps_list DOUBLE_QUOTE (let ((r)) (setq r $2) r)
- ;
-
-scalar:
- T_LNUMBER (let ((r)) (setq r $1) r)
- | T_DNUMBER (let ((r)) (setq r $1) r)
- | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC (let ((r)) (setq
r $2) r)
- | T_START_HEREDOC T_END_HEREDOC (let ((r)) (setq r
(ZEND_AST_CREATE_ZVAL_FROM_STR (ZSTR_EMPTY_ALLOC))) r)
- | T_START_HEREDOC encaps_list T_END_HEREDOC (let ((r)) (setq r $2) r)
- | dereferencable_scalar (let ((r)) (setq r $1) r)
- | constant (let ((r)) (setq r $1) r)
- | class_constant (let ((r)) (setq r $1) r)
- ;
-
-constant:
- name (let ((r)) (setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_CONST
$1)) r)
- | T_LINE (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_MAGIC_CONST 'phps-mode-parser--T_LINE)) r)
- | T_FILE (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_MAGIC_CONST 'phps-mode-parser--T_FILE)) r)
- | T_DIR (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_MAGIC_CONST 'phps-mode-parser--T_DIR)) r)
- | T_TRAIT_C (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_MAGIC_CONST 'phps-mode-parser--T_TRAIT_C)) r)
- | T_METHOD_C (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_MAGIC_CONST 'phps-mode-parser--T_METHOD_C)) r)
- | T_FUNC_C (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_MAGIC_CONST 'phps-mode-parser--T_FUNC_C)) r)
- | T_NS_C (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_MAGIC_CONST 'phps-mode-parser--T_NS_C)) r)
- | T_CLASS_C (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_MAGIC_CONST 'phps-mode-parser--T_CLASS_C)) r)
- ;
-
-class_constant:
- class_name T_PAAMAYIM_NEKUDOTAYIM identifier (let ((r)) (setq r
(ZEND_AST_CREATE_CLASS_CONST_OR_NAME $1 $3)) r)
- | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier (let ((r)) (setq r
(ZEND_AST_CREATE_CLASS_CONST_OR_NAME $1 $3)) r)
- ;
-
-optional_expr:
- empty (let ((r)) (setq r nil) r)
- | expr (let ((r)) (setq r $1) r)
- ;
-
-variable_class_name:
- fully_dereferencable (let ((r)) (setq r $1) r)
- ;
-
-fully_dereferencable:
- variable (let ((r)) (setq r $1) r)
- | OPEN_PARENTHESIS expr CLOSE_PARENTHESIS (let ((r)) (setq r $2) r)
- | dereferencable_scalar (let ((r)) (setq r $1) r)
- | class_constant (let ((r)) (setq r $1) r)
- ;
-
-array_object_dereferencable:
- fully_dereferencable (let ((r)) (setq r $1) r)
- | constant (let ((r)) (setq r $1) r)
- ;
-
-callable_expr:
- callable_variable (let ((r)) (setq r $1) r)
- | OPEN_PARENTHESIS expr CLOSE_PARENTHESIS (let ((r)) (setq r $2) r)
- | dereferencable_scalar (let ((r)) (setq r $1) r)
- ;
-
-callable_variable:
- simple_variable (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_VAR $1)) r)
- | array_object_dereferencable OPEN_SQUARE_BRACKET optional_expr
CLOSE_SQUARE_BRACKET (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_DIM $1 $3)) r)
- | array_object_dereferencable OPEN_CURLY_BRACKET expr CLOSE_CURLY_BRACKET
(let ((r)) (setq r (ZEND_AST_CREATE_EX 'phps-mode-parser--ZEND_AST_DIM
'phps-mode-parser--ZEND_DIM_ALTERNATIVE_SYNTAX $1 $3)) r)
- | array_object_dereferencable T_OBJECT_OPERATOR property_name
argument_list (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_METHOD_CALL $1 $3 $4)) r)
- | function_call (let ((r)) (setq r $1) r)
- ;
-
-variable:
- callable_variable (let ((r)) (setq r $1) r)
- | static_member (let ((r)) (setq r $1) r)
- | array_object_dereferencable T_OBJECT_OPERATOR property_name (let ((r))
(setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_PROP $1 $3)) r)
- ;
-
-simple_variable:
- T_VARIABLE (let ((r)) (setq r $1) r)
- | DOLLAR_SIGN OPEN_CURLY_BRACKET expr CLOSE_CURLY_BRACKET (let ((r)) (setq
r $3) r)
- | DOLLAR_SIGN simple_variable (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_VAR $2)) r)
- ;
-
-static_member:
- class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_STATIC_PROP $1 $3)) r)
- | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable (let ((r))
(setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_STATIC_PROP $1 $3)) r)
- ;
-
-new_variable:
- simple_variable (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_VAR $1)) r)
- | new_variable OPEN_SQUARE_BRACKET optional_expr CLOSE_SQUARE_BRACKET (let
((r)) (setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_DIM $1 $3)) r)
- | new_variable OPEN_CURLY_BRACKET expr CLOSE_CURLY_BRACKET (let ((r))
(setq r (ZEND_AST_CREATE_EX 'phps-mode-parser--ZEND_AST_DIM
'phps-mode-parser--ZEND_DIM_ALTERNATIVE_SYNTAX $1 $3)) r)
- | new_variable T_OBJECT_OPERATOR property_name (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_PROP $1 $3)) r)
- | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_STATIC_PROP $1 $3)) r)
- | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_STATIC_PROP $1 $3)) r)
- ;
-
-member_name:
- identifier (let ((r)) (setq r $1) r)
- | OPEN_CURLY_BRACKET expr CLOSE_CURLY_BRACKET (let ((r)) (setq r $2) r)
- | simple_variable (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_VAR $1)) r)
- ;
-
-property_name:
- T_STRING (let ((r)) (setq r $1) r)
- | OPEN_CURLY_BRACKET expr CLOSE_CURLY_BRACKET (let ((r)) (setq r $2) r)
- | simple_variable (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_VAR $1)) r)
- ;
-
-array_pair_list:
- non_empty_array_pair_list (let ((r)) ;; allow single trailing comma
-(setq r (ZEND_AST_LIST_RTRIM $1)) r)
- ;
-
-possible_array_pair:
- empty (let ((r)) (setq r nil) r)
- | array_pair (let ((r)) (setq r $1) r)
- ;
-
-non_empty_array_pair_list:
- non_empty_array_pair_list COMMA possible_array_pair (let ((r)) (setq r
(ZEND_AST_LIST_ADD $1 $3)) r)
- | possible_array_pair (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_ARRAY $1)) r)
- ;
-
-array_pair:
- expr T_DOUBLE_ARROW expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_ARRAY_ELEM $3 $1)) r)
- | expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_ARRAY_ELEM $1 nil)) r)
- | expr T_DOUBLE_ARROW BITWISE_AND variable (let ((r)) (setq r
(ZEND_AST_CREATE_EX 'phps-mode-parser--ZEND_AST_ARRAY_ELEM 1 $4 $1)) r)
- | BITWISE_AND variable (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_ARRAY_ELEM 1 $2 nil)) r)
- | T_ELLIPSIS expr (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_UNPACK $2)) r)
- | expr T_DOUBLE_ARROW T_LIST OPEN_PARENTHESIS array_pair_list
CLOSE_PARENTHESIS (let ((r)) (semantic-tag-put-attribute $5 'attr
'phps-mode-parser--ZEND_ARRAY_SYNTAX_LIST)(setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_ARRAY_ELEM $5 $1)) r)
- | T_LIST OPEN_PARENTHESIS array_pair_list CLOSE_PARENTHESIS (let ((r))
(semantic-tag-put-attribute $3 'attr
'phps-mode-parser--ZEND_ARRAY_SYNTAX_LIST)(setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_ARRAY_ELEM $3 nil)) r)
- ;
-
-encaps_list:
- encaps_list encaps_var (let ((r)) (setq r (ZEND_AST_LIST_ADD $1 $2)) r)
- | encaps_list T_ENCAPSED_AND_WHITESPACE (let ((r)) (setq r
(ZEND_AST_LIST_ADD $1 $2)) r)
- | encaps_var (let ((r)) (setq r (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--ZEND_AST_ENCAPS_LIST $1)) r)
- | T_ENCAPSED_AND_WHITESPACE encaps_var (let ((r)) (setq r
(ZEND_AST_CREATE_LIST 2 'phps-mode-parser--ZEND_AST_ENCAPS_LIST $1 $2)) r)
- ;
-
-encaps_var:
- T_VARIABLE (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_VAR $1)) r)
- | T_VARIABLE OPEN_SQUARE_BRACKET encaps_var_offset CLOSE_SQUARE_BRACKET
(let ((r)) (setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_DIM
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_VAR $1) $3)) r)
- | T_VARIABLE T_OBJECT_OPERATOR T_STRING (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_PROP (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_VAR $1) $3)) r)
- | T_DOLLAR_OPEN_CURLY_BRACES expr CLOSE_CURLY_BRACKET (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_VAR $2)) r)
- | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME CLOSE_CURLY_BRACKET (let
((r)) (setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_VAR $2)) r)
- | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME OPEN_SQUARE_BRACKET expr
CLOSE_SQUARE_BRACKET CLOSE_CURLY_BRACKET (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_DIM (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_VAR $2) $4)) r)
- | T_CURLY_OPEN variable CLOSE_CURLY_BRACKET (let ((r)) (setq r $2) r)
- ;
-
-encaps_var_offset:
- T_STRING (let ((r)) (setq r $1) r)
- | T_NUM_STRING (let ((r)) (setq r $1) r)
- | SUBTRACTION T_NUM_STRING (let ((r)) (setq r (ZEND_NEGATE_NUM_STRING $2))
r)
- | T_VARIABLE (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_VAR $1)) r)
- ;
-
-internal_functions_in_yacc:
- T_ISSET OPEN_PARENTHESIS isset_variables possible_comma CLOSE_PARENTHESIS
(let ((r)) (setq r $3) r)
- | T_EMPTY OPEN_PARENTHESIS expr CLOSE_PARENTHESIS (let ((r)) (setq r
(ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_EMPTY $3)) r)
- | T_INCLUDE expr (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_INCLUDE_OR_EVAL 'phps-mode-parser--ZEND_INCLUDE
$2)) r)
- | T_INCLUDE_ONCE expr (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_INCLUDE_OR_EVAL
'phps-mode-parser--ZEND_INCLUDE_ONCE $2)) r)
- | T_EVAL OPEN_PARENTHESIS expr CLOSE_PARENTHESIS (let ((r)) (setq r
(ZEND_AST_CREATE_EX 'phps-mode-parser--ZEND_AST_INCLUDE_OR_EVAL
'phps-mode-parser--ZEND_EVAL $3)) r)
- | T_REQUIRE expr (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_INCLUDE_OR_EVAL 'phps-mode-parser--ZEND_REQUIRE
$2)) r)
- | T_REQUIRE_ONCE expr (let ((r)) (setq r (ZEND_AST_CREATE_EX
'phps-mode-parser--ZEND_AST_INCLUDE_OR_EVAL
'phps-mode-parser--ZEND_REQUIRE_ONCE $2)) r)
- ;
-
-isset_variables:
- isset_variable (let ((r)) (setq r $1) r)
- | isset_variables COMMA isset_variable (let ((r)) (setq r (ZEND_AST_CREATE
'phps-mode-parser--ZEND_AST_AND $1 $3)) r)
- ;
-
-isset_variable:
- expr (let ((r)) (setq r (ZEND_AST_CREATE 'phps-mode-parser--ZEND_AST_ISSET
$1)) r)
- ;
-
-
-;; NOTE Generated grammar ends here
\ No newline at end of file
diff --git a/phps-mode-parser-grammar.wy b/phps-mode-parser-grammar.wy
deleted file mode 100644
index 9f22e6c..0000000
--- a/phps-mode-parser-grammar.wy
+++ /dev/null
@@ -1,665 +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
-
-
-;;; 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_CREATE_ZVAL_EX
- 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> 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 isset_variable
-
-%%
-
-reserved_non_modifiers:
- T_INCLUDE
- | T_INCLUDE_ONCE
- | T_EVAL
- | T_REQUIRE
- | T_REQUIRE_ONCE
- | T_LOGICAL_OR
- | T_LOGICAL_XOR
- | T_LOGICAL_AND
- | T_INSTANCEOF
- | T_NEW
- | T_CLONE
- | T_EXIT
- | T_IF
- | T_ELSEIF
- | T_ELSE
- | T_ENDIF
- | T_ECHO
- | T_DO
- | T_WHILE
- | T_ENDWHILE
- | T_FOR
- | T_ENDFOR
- | T_FOREACH
- | T_ENDFOREACH
- | T_DECLARE
- | T_ENDDECLARE
- | T_AS
- | T_TRY
- | T_CATCH
- | T_FINALLY
- | T_THROW
- | T_USE
- | T_INSTEADOF
- | T_GLOBAL
- | T_VAR
- | T_UNSET
- | T_ISSET
- | T_EMPTY
- | T_CONTINUE
- | T_GOTO
- | T_FUNCTION
- | T_CONST
- | T_RETURN
- | T_PRINT
- | T_YIELD
- | T_LIST
- | T_SWITCH
- | T_ENDSWITCH
- | T_CASE
- | T_DEFAULT
- | T_BREAK
- | T_ARRAY
- | T_CALLABLE
- | T_EXTENDS
- | T_IMPLEMENTS
- | T_NAMESPACE
- | T_TRAIT
- | T_INTERFACE
- | T_CLASS
- | T_CLASS_C
- | T_TRAIT_C
- | T_FUNC_C
- | T_METHOD_C
- | T_LINE
- | T_FILE
- | T_DIR
- | T_NS_C
- | T_FN
- ;
-
-semi_reserved:
- reserved_non_modifiers
- | T_STATIC
- | T_ABSTRACT
- | T_FINAL
- | T_PRIVATE
- | T_PROTECTED
- | T_PUBLIC
- ;
-
-identifier:
- T_STRING ($1)
- | semi_reserved (let ((zv nil))(ZEND_LEX_TSTRING (lambda(ret) (setq zv
ret)))(ZEND_AST_CREATE_ZVAL zv))
- ;
-
-namespace_name:
- T_STRING ($1)
- | namespace_name T_NS_SEPARATOR T_STRING (ZEND_AST_APPEND_STR $1 $3)
- ;
-
-name:
- namespace_name (progn (semantic-tag-put-attribute $1 'attr
'phps-mode-parser--zend_name_not_fq) $1)
- | T_NAMESPACE T_NS_SEPARATOR namespace_name (progn
(semantic-tag-put-attribute $3 'attr 'phps-mode-parser--zend_name_relative) $3)
- | T_NS_SEPARATOR namespace_name (progn (semantic-tag-put-attribute $2
'attr 'phps-mode-parser--zend_name_fq) $2)
- ;
-
-class_name:
- T_STATIC (let ((zv nil))(ZVAL_INTERNED_STR (lambda(return) (setq zv
return)) (ZSTR_KNOWN
'phps-mode-parser--zend_str_static))(ZEND_AST_CREATE_ZVAL_EX zv
'phps-mode-parser--zend_name_not_fq))
- | name ($1)
- ;
-
-constant:
- name (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_const $1)
- | T_LINE (ZEND_AST_CREATE_EX 'phps-mode-parser--zend_ast_magic_const
'phps-mode-parser--t_line)
- | T_FILE (ZEND_AST_CREATE_EX 'phps-mode-parser--zend_ast_magic_const
'phps-mode-parser--t_file)
- | T_DIR (ZEND_AST_CREATE_EX 'phps-mode-parser--zend_ast_magic_const
'phps-mode-parser--t_dir)
- | T_TRAIT_C (ZEND_AST_CREATE_EX 'phps-mode-parser--zend_ast_magic_const
'phps-mode-parser--t_trait_c)
- | T_METHOD_C (ZEND_AST_CREATE_EX 'phps-mode-parser--zend_ast_magic_const
'phps-mode-parser--t_method_c)
- | T_FUNC_C (ZEND_AST_CREATE_EX 'phps-mode-parser--zend_ast_magic_const
'phps-mode-parser--t_func_c)
- | T_NS_C (ZEND_AST_CREATE_EX 'phps-mode-parser--zend_ast_magic_const
'phps-mode-parser--t_ns_c)
- | T_CLASS_C (ZEND_AST_CREATE_EX 'phps-mode-parser--zend_ast_magic_const
'phps-mode-parser--t_class_c)
- ;
-
-class_constant:
- class_name T_PAAMAYIM_NEKUDOTAYIM identifier
(ZEND_AST_CREATE_CLASS_CONST_OR_NAME $1 $3)
- | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier
(ZEND_AST_CREATE_CLASS_CONST_OR_NAME $1 $3)
- ;
-
-property_name:
- T_STRING ($1)
- | OPEN_CURLY_BRACKET expr CLOSE_CURLY_BRACKET ($2)
- | simple_variable (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_var $1)
- ;
-
-argument_list:
- OPEN_PARENTHESIS CLOSE_PARENTHESIS (ZEND_AST_CREATE_LIST 0
'phps-mode-parser--zend_ast_arg_list)
- | OPEN_PARENTHESIS non_empty_argument_list possible_comma
CLOSE_PARENTHESIS ($2)
- ;
-
-possible_comma:
- ;; empty
- | COMMA
- ;
-
-non_empty_argument_list:
- argument (ZEND_AST_CREATE_LIST 1 'phps-mode-parser--zend_ast_arg_list $1)
- | non_empty_argument_list COMMA argument (ZEND_AST_LIST_ADD $1 $3)
- ;
-
-argument:
- expr ($1)
- | T_ELLIPSIS expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_unpack $2)
- ;
-
-function_call:
- name argument_list (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_call $1 $2)
- | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list
(ZEND_AST_CREATE 'phps-mode-parser--zend_ast_static_call $1 $3 $4)
- | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list
(ZEND_AST_CREATE 'phps-mode-parser--zend_ast_static_call $1 $3 $4)
- | callable_expr argument_list (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_call $1 $2)
- ;
-
-member_name:
- identifier ($1)
- | OPEN_CURLY_BRACKET expr CLOSE_CURLY_BRACKET ($2)
- | simple_variable (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_var $1)
- ;
-
-array_pair_list:
- non_empty_array_pair_list (ZEND_AST_LIST_RTRIM $1)
- ;
-
-possible_array_pair:
- (nil)
- | array_pair ($1)
- ;
-
-non_empty_array_pair_list:
- non_empty_array_pair_list COMMA possible_array_pair (ZEND_AST_LIST_ADD $1
$3)
- | possible_array_pair (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--zend_ast_array $1)
- ;
-
-array_pair:
- expr T_DOUBLE_ARROW expr (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_array_elem $3 $1)
- | expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_array_elem $1 nil)
- | expr T_DOUBLE_ARROW BITWISE_AND variable (ZEND_AST_CREATE_EX
'phps-mode-parser--zend_ast_array_elem 1 $4 $1)
- | BITWISE_AND variable (ZEND_AST_CREATE_EX
'phps-mode-parser--zend_ast_array_elem 1 $2 nil)
- | T_ELLIPSIS expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_unpack $2)
- | expr T_DOUBLE_ARROW T_LIST OPEN_PARENTHESIS array_pair_list
CLOSE_PARENTHESIS (progn (semantic-tag-put-attribute $4 'attr
'phps-mode-parser--zend_array_syntax_list)(ZEND_AST_CREATE
'phps-mode-parser--zend_ast_array_elem $5 $1))
- | T_LIST OPEN_PARENTHESIS array_pair_list CLOSE_PARENTHESIS (progn
(semantic-tag-put-attribute $3 'attr
'phps-mode-parser--zend_array_syntax_list)(ZEND_AST_CREATE
'phps-mode-parser--zend_ast_array_elem $3 nil))
- ;
-
-encaps_list:
- encaps_list encaps_var (ZEND_AST_LIST_ADD $1 $2)
- | encaps_list T_ENCAPSED_AND_WHITESPACE (ZEND_AST_LIST_ADD $1 $2)
- | encaps_var (ZEND_AST_CREATE_LIST 1
'phps-mode-parser--zend_ast_encaps_list $1)
- | T_ENCAPSED_AND_WHITESPACE encaps_var (ZEND_AST_CREATE_LIST 2
'phps-mode-parser--zend_ast_encaps_list $1 $2)
- ;
-
-encaps_var:
- T_VARIABLE (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_var $1)
- | T_VARIABLE OPEN_SQUARE_BRACKET encaps_var_offset CLOSE_SQUARE_BRACKET
(ZEND_AST_CREATE 'phps-mode-parser--zend_ast_dim (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_var $1) $3)
- | T_VARIABLE T_OBJECT_OPERATOR T_STRING (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_prop (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_var $1) $3)
- | T_DOLLAR_OPEN_CURLY_BRACES expr CLOSE_CURLY_BRACKET (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_var $2)
- | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME CLOSE_CURLY_BRACKET
(ZEND_AST_CREATE 'phps-mode-parser--zend_ast_var $2)
- | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME OPEN_SQUARE_BRACKET expr
CLOSE_SQUARE_BRACKET CLOSE_CURLY_BRACKET (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_dim (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_var $2) $4)
- | T_CURLY_OPEN variable CLOSE_CURLY_BRACKET ($2)
- ;
-
-encaps_var_offset:
- T_STRING ($1)
- | T_NUM_STRING ($1)
- | '-' T_NUM_STRING (ZEND_NEGATE_NUM_STRING $2)
- | T_VARIABLE (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_var $1)
- ;
-
-dereferencable_scalar:
- T_ARRAY OPEN_PARENTHESIS array_pair_list CLOSE_PARENTHESIS (progn
(semantic-tag-put-attribute $3 'attr 'phps-mode-parser--zend_array_syntax_long)
$3)
- | OPEN_SQUARE_BRACKET array_pair_list CLOSE_SQUARE_BRACKET (progn
(semantic-tag-put-attribute $2 'attr
'phps-mode-parser--zend_array_syntax_short) $2)
- | T_CONSTANT_ENCAPSED_STRING ($1)
- | DOUBLE_QUOTE encaps_list DOUBLE_QUOTE ($2)
- ;
-
-optional_expr:
- (nil)
- | expr ($1)
- ;
-
-variable_class_name:
- fully_dereferencable ($1)
- ;
-
-fully_dereferencable:
- variable ($1)
- | OPEN_PARENTHESIS expr CLOSE_PARENTHESIS ($2)
- | dereferencable_scalar ($1)
- | class_constant ($1)
- ;
-
-array_object_dereferencable:
- fully_dereferencable ($1)
- | constant ($1)
- ;
-
-callable_expr:
- callable_variable ($1)
- | OPEN_PARENTHESIS expr CLOSE_PARENTHESIS ($2)
- | dereferencable_scalar ($1)
- ;
-
-callable_variable:
- simple_variable (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_var $1)
- | array_object_dereferencable OPEN_SQUARE_BRACKET optional_expr
CLOSE_SQUARE_BRACKET (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_dim $1 $3)
- | array_object_dereferencable OPEN_CURLY_BRACKET expr CLOSE_CURLY_BRACKET
(ZEND_AST_CREATE_EX 'phps-mode-parser--zend_ast_dim
'phps-mode-parser--zend_dim_alternative_syntax $1 $3)
- | array_object_dereferencable T_OBJECT_OPERATOR property_name
argument_list (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_method_call $1 $3 $4)
- | function_call ($1)
- ;
-
-variable:
- callable_variable ($1)
- | static_member ($1)
- | array_object_dereferencable T_OBJECT_OPERATOR property_name
(ZEND_AST_CREATE 'phps-mode-parser--zend_ast_prop $1 $2)
- ;
-
-simple_variable:
- T_VARIABLE ($1)
- | DOLLAR_SIGN OPEN_CURLY_BRACKET expr CLOSE_CURLY_BRACKET ($3)
- | DOLLAR_SIGN simple_variable (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_var $2)
- ;
-
-static_member:
- class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_static_prop $1 $3)
- | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable
(ZEND_AST_CREATE 'phps-mode-parser--zend_ast_static_prop $1 $3)
- ;
-
-expr:
- variable ($1)
- | T_LIST OPEN_PARENTHESIS array_pair_list CLOSE_PARENTHESIS ASSIGN expr
(progn (semantic-tag-put-attribute $3 'attr
phps-mode-parser--zend_array_syntax_list)(ZEND_AST_CREATE
'phps-mode-parser--zend_ast_assign $3 $6)
- | OPEN_SQUARE_BRACKET array_pair_list CLOSE_SQUARE_BRACKET ASSIGN expr
(progn (semantic-tag-put-attribute $2 'attr
'phps-mode-parser--zend_array_syntax_short)(ZEND_AST_CREATE
'phps-mode-parser--zend_ast_assign $2 $5))
- | variable ASSIGN expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_assign
$1 $3)
- | variable ASSIGN BITWISE_AND variable (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_assign_ref $1 $4)
- | T_CLONE expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_clone $2)
- | variable T_PLUS_EQUAL expr (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--zend_add $1 $3)
- | variable T_MINUS_EQUAL expr (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--zend_sub $1 $3)
- | variable T_MUL_EQUAL expr (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--zend_mul $1 $3)
- | variable T_POW_EQUAL expr (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--zend_pow $1 $3)
- | variable T_DIV_EQUAL expr (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--zend_div $1 $3)
- | variable T_CONCAT_EQUAL expr (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--zend_concat $1 $3)
- | variable T_MOD_EQUAL expr (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--zend_mod $1 $3)
- | variable T_AND_EQUAL expr (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--zend_bw_and $1 $3)
- | variable T_OR_EQUAL expr (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--zend_bw_or $1 $3)
- | variable T_XOR_EQUAL expr (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--zend_bw_xor $1 $3)
- | variable T_SL_EQUAL expr (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--zend_sl $1 $3)
- | variable T_SR_EQUAL expr (ZEND_AST_CREATE_ASSIGN_OP
'phps-mode-parser--zend_sr $1 $3)
- | variable T_COALESCE_EQUAL expr (ZEND_AST_CREATE
'phps-mode-parser--zend_coalesce $1 $3)
- | variable T_INC (ZEND_AST_CREATE 'phps-mode-parser--zend_post_inc $1)
- | T_INC variable (ZEND_AST_CREATE 'phps-mode-parser--zend_pre_inc $2)
- | variable T_DEC (ZEND_AST_CREATE 'phps-mode-parser--zend_post_dec $1)
- | T_DEC variable (ZEND_AST_CREATE 'phps-mode-parser--zend_pre_inc $2)
- | expr T_BOOLEAN_OR expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_or
$1 $3)
- | expr T_BOOLEAN_AND expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_and
$1 $3)
- | expr T_LOGICAL_OR expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_or
$1 $3)
- | expr T_LOGICAL_AND expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_and
$1 $3)
- | expr T_LOGICAL_XOR expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_bool_xor $1 $3)
- | expr BITWISE_OR expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_bw_or $1 $3)
- | expr BITWISE_AND expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_bw_and $1 $3)
- | expr POW expr (ZEND_AST_CREATE_BINARY_OP 'phps-mode-parser--zend_bw_xor
$1 $3)
- | expr DOT expr (ZEND_AST_CREATE_BINARY_OP 'phps-mode-parser--zend_concat
$1 $3)
- | expr ADDITION expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_add $1 $3)
- | expr SUBTRACTION expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_sub $1 $3)
- | expr MULTIPLICATION expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_mul $1 $3)
- | expr T_POW expr (ZEND_AST_CREATE_BINARY_OP 'phps-mode-parser--zend_pow
$1 $3)
- | expr DIVISION expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_div $1 $3)
- | expr MODULO expr (ZEND_AST_CREATE_BINARY_OP 'phps-mode-parser--zend_mod
$1 $3)
- | expr T_SL expr (ZEND_AST_CREATE_BINARY_OP 'phps-mode-parser--zend_sl $1
$3)
- | expr T_SR expr (ZEND_AST_CREATE_BINARY_OP 'phps-mode-parser--zend_sr $1
$3)
- | ADDITION expr prec UNARY (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_unary_plus $1 $2)
- | SUBTRACTION expr prec UNARY (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_unary_minus $1 $2)
- | NEGATION expr (ZEND_AST_CREATE_EX 'phps-mode-parser--zend_ast_unary_op
'phps-mode-parser--zend_bool_not $2)
- | UNARY expr (ZEND_AST_CREATE_EX 'phps-mode-parser--zend_ast_unary_op
'phps-mode-parser--zend_bw_not $2)
- | expr T_IS_IDENTICAL expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_is_identical $1 $3)
- | expr T_IS_NOT_IDENTICAL expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_is_not_identical $1 $3)
- | expr T_IS_EQUAL expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_is_equal $1 $3)
- | expr T_IS_NOT_EQUAL expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_is_not_equal $1 $3)
- | expr LESSER_THAN expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_is_smaller $1 $3)
- | expr T_IS_SMALLER_OR_EQUAL expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_is_smaller_or_equal $1 $3)
- | expr GREATER_THAN expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_is_greater $1 $3)
- | expr T_IS_GREATER_OR_EQUAL expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_is_greater_or_equal $1 $3)
- | expr T_SPACESHIP expr (ZEND_AST_CREATE_BINARY_OP
'phps-mode-parser--zend_spaceship $1 $3)
- | expr T_INSTANCEOF class_name_reference (ZEND_AST_CREATE
'phps-mode-parser--zend_instanceof $1 $3)
- | OPEN_PARENTHESIS expr CLOSE_PARENTHESIS (progn (when (equal
(semantic-tag-get-attribute $2 'kind) 'phps-mode-parser--zend_ast_conditional)
(semantic-tag-put-attribute $2 'attr
'phps-mode-parser--zend_parenthesized_conditional)) $2)
- | new_expr ($1)
- | expr QUESTION_MARK expr COLON expr (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_conditional $1 $3 $5)
- | expr QUESTION_MARK COLON expr (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_conditional $1 nil $4)
- | expr T_COALESCE expr (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_coalesce $1 $3)
- | internal_functions_in_yacc ($1))
- | T_INT_CAST expr (ZEND_AST_CREATE_CAST 'phps-mode-parser--is_long $2)
- | T_DOUBLE_CAST expr (ZEND_AST_CREATE_CAST 'phps-mode-parser--is_double $2)
- | T_STRING_CAST expr (ZEND_AST_CREATE_CAST 'phps-mode-parser--is_string $2)
- | T_ARRAY_CAST expr (ZEND_AST_CREATE_CAST 'phps-mode-parser--is_array $2)
- | T_OBJECT_CAST expr (ZEND_AST_CREATE_CAST 'phps-mode-parser--is_object $2)
- | T_BOOL_CAST expr (ZEND_AST_CREATE_CAST 'phps-mode-parser--is_bool $2)
- | T_UNSET_CAST expr (ZEND_AST_CREATE_CAST 'phps-mode-parser--is_unset $2)
- | T_EXIT exit_expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_exit $2)
- | AT expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_silence $2)
- | scalar ($1)
- | BACKTICK backticks_expr BACKTICK (ZEND_AST_CREATE
'phps-mode-parser--zend_ast_shell $2)
- | T_PRINT expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_print $2)
- | T_YIELD (progn (phps-mode-parser-grammar-macro-CG
'phps-mode-parser--extra_fn_flags (logior (phps-mode-parser-grammar-macro-CG
'phps-mode-parser--extra_fn_flags)
'phps-mode-parser--zend_acc_generator))(ZEND_AST_CREATE
'phps-mode-parser--zend_ast_yield nil nil))
- | T_YIELD expr (progn (phps-mode-parser-grammar-macro-CG
'phps-mode-parser--extra_fn_flags (logior (phps-mode-parser-grammar-macro-CG
'phps-mode-parser--extra_fn_flags)
'phps-mode-parser--zend_acc_generator))(ZEND_AST_CREATE
'phps-mode-parser--zend_ast_yield $2 nil))
- | T_YIELD expr T_DOUBLE_ARROW expr (progn
(phps-mode-parser-grammar-macro-CG 'phps-mode-parser--extra_fn_flags (logior
(phps-mode-parser-grammar-macro-CG 'phps-mode-parser--extra_fn_flags)
'phps-mode-parser--zend_acc_generator))(ZEND_AST_CREATE
'phps-mode-parser--zend_ast_yield $4 $2))
- | T_YIELD_FROM expr (progn (phps-mode-parser-grammar-macro-CG
'phps-mode-parser--extra_fn_flags (logior (phps-mode-parser-grammar-macro-CG
'phps-mode-parser--extra_fn_flags)
'phps-mode-parser--zend_acc_generator))(ZEND_AST_CREATE
'phps-mode-parser--zend_ast_yield_from $2))
- | T_THROW expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_throw $2)
- | inline_function ($1)
- | T_STATIC inline_function (progn (semantic-tag-put-attribute $2 'flags
(logior (semantic-tag-get-attribute $2 'flags)
'phps-mode-parser--zend_acc_static)) $2)
- ;
-
-isset_variable:
- expr (ZEND_AST_CREATE 'phps-mode-parser--zend_ast_isset $1)
- ;
-
-%%
\ No newline at end of file
diff --git a/phps-mode-wy.el b/phps-mode-wy.el
deleted file mode 100644
index ec24792..0000000
--- a/phps-mode-wy.el
+++ /dev/null
@@ -1,1004 +0,0 @@
-;;; phps-mode-wy.el --- Generated parser support file
-
-;; Copyright (C) 2018-2020 Free Software Foundation, Inc.
-
-;; Author: Christian Johansson
<christianjohansson@Christians-MacBook-Air.local>
-;; Created: 2020-06-05 09:39:40+0200
-;; Keywords: syntax
-;; X-RCS: $Id$
-
-;; 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 3 of
-;; the License, or (at your option) any later version.
-
-;; This software 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 this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;; PLEASE DO NOT MANUALLY EDIT THIS FILE! It is automatically
-;; generated from the grammar file phps-mode-parser-grammar.wy.
-
-;;; History:
-;;
-
-;;; Code:
-
-(require 'semantic/lex)
-(eval-when-compile (require 'semantic/bovine))
-
-;;; Prologue
-;;
-(setq max-specpdl-size 160000)
-
-;;; Declarations
-;;
-(eval-and-compile (defconst phps-mode--expected-conflicts
- nil
- "The number of expected shift/reduce conflicts in this
grammar."))
-
-(defconst phps-mode--keyword-table
- (semantic-lex-make-keyword-table
- '(("include (T_INCLUDE)" . T_INCLUDE)
- ("include_once (T_INCLUDE_ONCE)" . T_INCLUDE_ONCE)
- ("eval (T_EVAL)" . T_EVAL)
- ("require (T_REQUIRE)" . T_REQUIRE)
- ("require_once (T_REQUIRE_ONCE)" . T_REQUIRE_ONCE)
- ("or (T_LOGICAL_OR)" . T_LOGICAL_OR)
- ("xor (T_LOGICAL_XOR)" . T_LOGICAL_XOR)
- ("and (T_LOGICAL_AND)" . T_LOGICAL_AND)
- ("print (T_PRINT)" . T_PRINT)
- ("yield (T_YIELD)" . T_YIELD)
- ("yield from (T_YIELD_FROM)" . T_YIELD_FROM)
- ("+= (T_PLUS_EQUAL)" . T_PLUS_EQUAL)
- ("-= (T_MINUS_EQUAL)" . T_MINUS_EQUAL)
- ("*= (T_MUL_EQUAL)" . T_MUL_EQUAL)
- ("/= (T_DIV_EQUAL)" . T_DIV_EQUAL)
- (".= (T_CONCAT_EQUAL)" . T_CONCAT_EQUAL)
- ("%= (T_MOD_EQUAL)" . T_MOD_EQUAL)
- ("&= (T_AND_EQUAL)" . T_AND_EQUAL)
- ("|= (T_OR_EQUAL)" . T_OR_EQUAL)
- ("^= (T_XOR_EQUAL)" . T_XOR_EQUAL)
- ("<<= (T_SL_EQUAL)" . T_SL_EQUAL)
- (">>= (T_SR_EQUAL)" . T_SR_EQUAL)
- ("??= (T_COALESCE_EQUAL)" . T_COALESCE_EQUAL)
- ("|| (T_BOOLEAN_OR)" . T_BOOLEAN_OR)
- ("&& (T_BOOLEAN_AND)" . T_BOOLEAN_AND)
- ("== (T_IS_EQUAL)" . T_IS_EQUAL)
- ("!= (T_IS_NOT_EQUAL)" . T_IS_NOT_EQUAL)
- ("=== (T_IS_IDENTICAL)" . T_IS_IDENTICAL)
- ("!== (T_IS_NOT_IDENTICAL)" . T_IS_NOT_IDENTICAL)
- ("<= (T_IS_SMALLER_OR_EQUAL)" . T_IS_SMALLER_OR_EQUAL)
- (">= (T_IS_GREATER_OR_EQUAL)" . T_IS_GREATER_OR_EQUAL)
- ("<=> (T_SPACESHIP)" . T_SPACESHIP)
- ("<< (T_SL)" . T_SL)
- (">> (T_SR)" . T_SR)
- ("instanceof (T_INSTANCEOF)" . T_INSTANCEOF)
- ("++ (T_INC)" . T_INC)
- ("-- (T_DEC)" . T_DEC)
- ("(int) (T_INT_CAST)" . T_INT_CAST)
- ("(double) (T_DOUBLE_CAST)" . T_DOUBLE_CAST)
- ("(string) (T_STRING_CAST)" . T_STRING_CAST)
- ("(array) (T_ARRAY_CAST)" . T_ARRAY_CAST)
- ("(object) (T_OBJECT_CAST)" . T_OBJECT_CAST)
- ("(bool) (T_BOOL_CAST)" . T_BOOL_CAST)
- ("(unset) (T_UNSET_CAST)" . T_UNSET_CAST)
- ("new (T_NEW)" . T_NEW)
- ("clone (T_CLONE)" . T_CLONE)
- ("exit (T_EXIT)" . T_EXIT)
- ("if (T_IF)" . T_IF)
- ("elseif (T_ELSEIF)" . T_ELSEIF)
- ("else (T_ELSE)" . T_ELSE)
- ("endif (T_ENDIF)" . T_ENDIF)
- ("echo (T_ECHO)" . T_ECHO)
- ("do (T_DO)" . T_DO)
- ("while (T_WHILE)" . T_WHILE)
- ("endwhile (T_ENDWHILE)" . T_ENDWHILE)
- ("for (T_FOR)" . T_FOR)
- ("endfor (T_ENDFOR)" . T_ENDFOR)
- ("foreach (T_FOREACH)" . T_FOREACH)
- ("endforeach (T_ENDFOREACH)" . T_ENDFOREACH)
- ("declare (T_DECLARE)" . T_DECLARE)
- ("enddeclare (T_ENDDECLARE)" . T_ENDDECLARE)
- ("as (T_AS)" . T_AS)
- ("switch (T_SWITCH)" . T_SWITCH)
- ("endswitch (T_ENDSWITCH)" . T_ENDSWITCH)
- ("case (T_CASE)" . T_CASE)
- ("default (T_DEFAULT)" . T_DEFAULT)
- ("break (T_BREAK)" . T_BREAK)
- ("continue (T_CONTINUE)" . T_CONTINUE)
- ("goto (T_GOTO)" . T_GOTO)
- ("function (T_FUNCTION)" . T_FUNCTION)
- ("fn (T_FN)" . T_FN)
- ("const (T_CONST)" . T_CONST)
- ("return (T_RETURN)" . T_RETURN)
- ("try (T_TRY)" . T_TRY)
- ("catch (T_CATCH)" . T_CATCH)
- ("finally (T_FINALLY)" . T_FINALLY)
- ("throw (T_THROW)" . T_THROW)
- ("use (T_USE)" . T_USE)
- ("insteadof (T_INSTEADOF)" . T_INSTEADOF)
- ("global (T_GLOBAL)" . T_GLOBAL)
- ("static (T_STATIC)" . T_STATIC)
- ("abstract (T_ABSTRACT)" . T_ABSTRACT)
- ("final (T_FINAL)" . T_FINAL)
- ("private (T_PRIVATE)" . T_PRIVATE)
- ("protected (T_PROTECTED)" . T_PROTECTED)
- ("public (T_PUBLIC)" . T_PUBLIC)
- ("var (T_VAR)" . T_VAR)
- ("unset (T_UNSET)" . T_UNSET)
- ("isset (T_ISSET)" . T_ISSET)
- ("empty (T_EMPTY)" . T_EMPTY)
- ("__halt_compiler (T_HALT_COMPILER)" . T_HALT_COMPILER)
- ("class (T_CLASS)" . T_CLASS)
- ("trait (T_TRAIT)" . T_TRAIT)
- ("interface (T_INTERFACE)" . T_INTERFACE)
- ("extends (T_EXTENDS)" . T_EXTENDS)
- ("implements (T_IMPLEMENTS)" . T_IMPLEMENTS)
- ("-> (T_OBJECT_OPERATOR)" . T_OBJECT_OPERATOR)
- ("=> (T_DOUBLE_ARROW)" . T_DOUBLE_ARROW)
- ("list (T_LIST)" . T_LIST)
- ("array (T_ARRAY)" . T_ARRAY)
- ("callable (T_CALLABLE)" . T_CALLABLE)
- ("__LINE__ (T_LINE)" . T_LINE)
- ("__FILE__ (T_FILE)" . T_FILE)
- ("__DIR__ (T_DIR)" . T_DIR)
- ("__CLASS__ (T_CLASS_C)" . T_CLASS_C)
- ("__TRAIT__ (T_TRAIT_C)" . T_TRAIT_C)
- ("__METHOD__ (T_METHOD_C)" . T_METHOD_C)
- ("__FUNCTION__ (T_FUNC_C)" . T_FUNC_C)
- ("comment (T_COMMENT)" . T_COMMENT)
- ("doc comment (T_DOC_COMMENT)" . T_DOC_COMMENT)
- ("open tag (T_OPEN_TAG)" . T_OPEN_TAG)
- ("open tag with echo (T_OPEN_TAG_WITH_ECHO)" . T_OPEN_TAG_WITH_ECHO)
- ("close tag (T_CLOSE_TAG)" . T_CLOSE_TAG)
- ("whitespace (T_WHITESPACE)" . T_WHITESPACE)
- ("heredoc start (T_START_HEREDOC)" . T_START_HEREDOC)
- ("heredoc end (T_END_HEREDOC)" . T_END_HEREDOC)
- ("${ (T_DOLLAR_OPEN_CURLY_BRACES)" . T_DOLLAR_OPEN_CURLY_BRACES)
- ("{$ (T_CURLY_OPEN)" . T_CURLY_OPEN)
- (":: (T_PAAMAYIM_NEKUDOTAYIM)" . T_PAAMAYIM_NEKUDOTAYIM)
- ("namespace (T_NAMESPACE)" . T_NAMESPACE)
- ("__NAMESPACE__ (T_NS_C)" . T_NS_C)
- ("\\ (T_NS_SEPARATOR)" . T_NS_SEPARATOR)
- ("... (T_ELLIPSIS)" . T_ELLIPSIS)
- ("?? (T_COALESCE)" . T_COALESCE)
- ("** (T_POW)" . T_POW)
- ("**= (T_POW_EQUAL)" . T_POW_EQUAL)
- ("invalid character (T_BAD_CHARACTER)" . T_BAD_CHARACTER))
- 'nil)
- "Table of language keywords.")
-
-(defconst phps-mode--token-table
- (semantic-lex-make-type-table
- '(("<no-type>"
- (T_ERROR)
- (\0)
- (END))
- ("punctuation"
- (UNARY . "~")
- (SUBTRACTION . "-")
- (SINGLE_QUOTE . "'")
- (QUESTION_MARK . "?")
- (POW . "^")
- (OPEN_SQUARE_BRACKET . "[")
- (OPEN_PARENTHESIS . "(")
- (OPEN_CURLY_BRACKET . "{")
- (NEGATION . "!")
- (MULTIPLICATION . "*")
- (MODULO . "%")
- (LESSER_THAN . "<")
- (GREATER_THAN . ">")
- (DOT . ".")
- (DIVISION . "/")
- (DOUBLE_QUOTE . "\"")
- (DOLLAR_SIGN . "$")
- (COMMA . ",")
- (COLON . ":")
- (CLOSE_SQUARE_BRACKET . "]")
- (CLOSE_PARENTHESIS . ")")
- (CLOSE_CURLY_BRACKET . "]")
- (BITWISE_OR . "|")
- (BITWISE_AND . "&")
- (BACKTICK . "`")
- (AT . "@")
- (ASSIGN . "=")
- (ADDITION . "+"))
- ("ast"
- (T_NUM_STRING . "number (T_NUM_STRING)")
- (T_STRING_VARNAME . "variable name (T_STRING_VARNAME)")
- (T_CONSTANT_ENCAPSED_STRING . "quoted-string
(T_CONSTANT_ENCAPSED_STRING)")
- (T_ENCAPSED_AND_WHITESPACE . "quoted-string and whitespace
(T_ENCAPSED_AND_WHITESPACE)")
- (T_INLINE_HTML)
- (T_VARIABLE . "variable (T_VARIABLE)")
- (T_STRING . "identifier (T_STRING)")
- (T_DNUMBER . "floating-point number (T_DNUMBER)")
- (T_LNUMBER . "integer number (T_LNUMBER)")))
- '(("num" class_modifiers class_modifier)
- ("num" use_type backup_fn_flags)
- ("num" :declared t)
- ("num" returns_ref function)
- ("num" fn is_reference)
- ("num" is_variadic variable_modifiers)
- ("num" :declared t)
- ("ast" inline_function union_type)
- ("ast" :declared t)
- ("ast" array_pair non_empty_array_pair_list)
- ("ast" array_pair_list possible_array_pair)
- ("ast" :declared t)
- ("ast" lexical_var_list encaps_list)
- ("ast" :declared t)
- ("ast" ctor_arguments alt_if_stmt_without_else)
- ("ast" trait_adaptation_list lexical_vars)
- ("ast" :declared t)
- ("ast" class_const_list class_const_decl)
- ("ast" class_name_list trait_adaptations)
- ("ast" method_body non_empty_for_exprs)
- ("ast" :declared t)
- ("ast" non_empty_parameter_list argument_list)
- ("ast" non_empty_argument_list property_list)
- ("ast" :declared t)
- ("ast" callable_expr callable_variable)
- ("ast" static_member new_variable)
- ("ast" :declared t)
- ("ast" fully_dereferencable array_object_dereferencable)
- ("ast" :declared t)
- ("ast" variable_class_name dereferencable_scalar)
- ("ast" constant class_constant)
- ("ast" :declared t)
- ("ast" absolute_trait_method_reference trait_method_reference)
- ("ast" property echo_expr)
- ("ast" :declared t)
- ("ast" interface_declaration_statement interface_extends_list)
- ("ast" :declared t)
- ("ast" class_declaration_statement trait_declaration_statement)
- ("ast" :declared t)
- ("punctuation" :declared t)))
- "Table of lexical tokens.")
-
-(defconst phps-mode--parse-table
- (progn
- (eval-when-compile
- (require 'semantic/wisent/comp))
- (wisent-compile-grammar
- '((T_LNUMBER T_DNUMBER T_STRING T_VARIABLE T_INLINE_HTML
T_ENCAPSED_AND_WHITESPACE T_CONSTANT_ENCAPSED_STRING T_STRING_VARNAME
T_NUM_STRING ADDITION ASSIGN AT BACKTICK BITWISE_AND BITWISE_OR
CLOSE_CURLY_BRACKET CLOSE_PARENTHESIS CLOSE_SQUARE_BRACKET COLON COMMA
DOLLAR_SIGN DOUBLE_QUOTE DIVISION DOT GREATER_THAN LESSER_THAN MODULO
MULTIPLICATION NEGATION OPEN_CURLY_BRACKET OPEN_PARENTHESIS OPEN_SQUARE_BRACKET
POW QUESTION_MARK SINGLE_QUOTE SUBTRACTION UNARY END \0 T_INCLUDE T_INCLUDE
[...]
- ((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 61 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 63 58)
- (right T_COALESCE)
- (left T_BOOLEAN_OR)
- (left T_BOOLEAN_AND)
- (left 124)
- (left 94)
- (left 38)
- (nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL
T_SPACESHIP)
- (nonassoc 60 T_IS_SMALLER_OR_EQUAL 62 T_IS_GREATER_OR_EQUAL)
- (left 46)
- (left T_SL T_SR)
- (left 43 45)
- (left 42 47 37 %precedence 33 %precedence T_INSTANCEOF %precedence 126
T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST
T_UNSET_CAST 64)
- (right T_POW %precedence T_CLONE %precedence T_NOELSE %precedence
T_ELSEIF %precedence T_ELSE))
- (reserved_non_modifiers
- ((T_INCLUDE))
- ((T_INCLUDE_ONCE))
- ((T_EVAL))
- ((T_REQUIRE))
- ((T_REQUIRE_ONCE))
- ((T_LOGICAL_OR))
- ((T_LOGICAL_XOR))
- ((T_LOGICAL_AND))
- ((T_INSTANCEOF))
- ((T_NEW))
- ((T_CLONE))
- ((T_EXIT))
- ((T_IF))
- ((T_ELSEIF))
- ((T_ELSE))
- ((T_ENDIF))
- ((T_ECHO))
- ((T_DO))
- ((T_WHILE))
- ((T_ENDWHILE))
- ((T_FOR))
- ((T_ENDFOR))
- ((T_FOREACH))
- ((T_ENDFOREACH))
- ((T_DECLARE))
- ((T_ENDDECLARE))
- ((T_AS))
- ((T_TRY))
- ((T_CATCH))
- ((T_FINALLY))
- ((T_THROW))
- ((T_USE))
- ((T_INSTEADOF))
- ((T_GLOBAL))
- ((T_VAR))
- ((T_UNSET))
- ((T_ISSET))
- ((T_EMPTY))
- ((T_CONTINUE))
- ((T_GOTO))
- ((T_FUNCTION))
- ((T_CONST))
- ((T_RETURN))
- ((T_PRINT))
- ((T_YIELD))
- ((T_LIST))
- ((T_SWITCH))
- ((T_ENDSWITCH))
- ((T_CASE))
- ((T_DEFAULT))
- ((T_BREAK))
- ((T_ARRAY))
- ((T_CALLABLE))
- ((T_EXTENDS))
- ((T_IMPLEMENTS))
- ((T_NAMESPACE))
- ((T_TRAIT))
- ((T_INTERFACE))
- ((T_CLASS))
- ((T_CLASS_C))
- ((T_TRAIT_C))
- ((T_FUNC_C))
- ((T_METHOD_C))
- ((T_LINE))
- ((T_FILE))
- ((T_DIR))
- ((T_NS_C))
- ((T_FN)))
- (semi_reserved
- ((reserved_non_modifiers))
- ((T_STATIC))
- ((T_ABSTRACT))
- ((T_FINAL))
- ((T_PRIVATE))
- ((T_PROTECTED))
- ((T_PUBLIC)))
- (identifier
- ((T_STRING)
- ($1))
- ((semi_reserved)
- (let
- ((zv nil))
- ((SYMBOL 22104 . 22108)
- (COLON 22108 . 22109))
- (wisent-raw-tag
- (semantic-tag zv 'ZEND_AST_ZVAL :attr 0)))))
- (namespace_name
- ((T_STRING)
- ($1))
- ((namespace_name T_NS_SEPARATOR T_STRING)
- (ZEND_AST_APPEND_STR $1 $3)))
- (name
- ((namespace_name)
- (progn
- (semantic-tag-put-attribute $1 'attr
'phps-mode-parser--zend_name_not_fq)
- $1))
- ((T_NAMESPACE T_NS_SEPARATOR namespace_name)
- (progn
- (semantic-tag-put-attribute $3 'attr
'phps-mode-parser--zend_name_relative)
- $3))
- ((T_NS_SEPARATOR namespace_name)
- (progn
- (semantic-tag-put-attribute $2 'attr
'phps-mode-parser--zend_name_fq)
- $2)))
- (class_name
- ((T_STATIC)
- (let
- ((zv nil))
- (let
- ((symbol
- '(ZSTR_KNOWN 'phps-mode-parser--zend_str_static)))
- (funcall callback symbol))
- (wisent-raw-tag
- (semantic-tag zv 'phps-mode-parser--zend_name_not_fq))))
- ((name)
- ($1)))
- (constant
- ((name)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_const $1)))
- ((T_LINE)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_magic_const 'ZEND_AST_EX
:operator 'phps-mode-parser--t_line)))
- ((T_FILE)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_magic_const 'ZEND_AST_EX
:operator 'phps-mode-parser--t_file)))
- ((T_DIR)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_magic_const 'ZEND_AST_EX
:operator 'phps-mode-parser--t_dir)))
- ((T_TRAIT_C)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_magic_const 'ZEND_AST_EX
:operator 'phps-mode-parser--t_trait_c)))
- ((T_METHOD_C)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_magic_const 'ZEND_AST_EX
:operator 'phps-mode-parser--t_method_c)))
- ((T_FUNC_C)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_magic_const 'ZEND_AST_EX
:operator 'phps-mode-parser--t_func_c)))
- ((T_NS_C)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_magic_const 'ZEND_AST_EX
:operator 'phps-mode-parser--t_ns_c)))
- ((T_CLASS_C)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_magic_const 'ZEND_AST_EX
:operator 'phps-mode-parser--t_class_c))))
- (class_constant
- ((class_name T_PAAMAYIM_NEKUDOTAYIM identifier)
- (wisent-raw-tag
- (semantic-tag $1 'ZEND_AST_CLASS_CONST_OR_NAME :member $3)))
- ((variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier)
- (wisent-raw-tag
- (semantic-tag $1 'ZEND_AST_CLASS_CONST_OR_NAME :member $3))))
- (property_name
- ((T_STRING)
- ($1))
- ((OPEN_CURLY_BRACKET expr CLOSE_CURLY_BRACKET)
- ($2))
- ((simple_variable)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_var $1))))
- (argument_list
- ((OPEN_PARENTHESIS CLOSE_PARENTHESIS)
- (wisent-raw-tag
- (semantic-tag "" 'phps-mode-parser--zend_ast_arg_list :elements
@elements :size 0)))
- ((OPEN_PARENTHESIS non_empty_argument_list possible_comma
CLOSE_PARENTHESIS)
- ($2)))
- (possible_comma
- (nil)
- ((COMMA)))
- (non_empty_argument_list
- ((argument)
- (wisent-raw-tag
- (semantic-tag "" 'phps-mode-parser--zend_ast_arg_list :elements
@elements :size 1)))
- ((non_empty_argument_list COMMA argument)
- (wisent-raw-tag
- (semantic-tag $1 'ZEND_AST_LIST_ADD :new-element $3))))
- (argument
- ((expr)
- ($1))
- ((T_ELLIPSIS expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_unpack $2))))
- (function_call
- ((name argument_list)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_call $1 $2)))
- ((class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_static_call $1 $3 $4)))
- ((variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_static_call $1 $3 $4)))
- ((callable_expr argument_list)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_call $1 $2))))
- (member_name
- ((identifier)
- ($1))
- ((OPEN_CURLY_BRACKET expr CLOSE_CURLY_BRACKET)
- ($2))
- ((simple_variable)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_var $1))))
- (array_pair_list
- ((non_empty_array_pair_list)
- (wisent-raw-tag
- (semantic-tag $1 'ZEND_AST_LIST_RTRIM))))
- (possible_array_pair
- (nil
- (nil))
- ((array_pair)
- ($1)))
- (non_empty_array_pair_list
- ((non_empty_array_pair_list COMMA possible_array_pair)
- (wisent-raw-tag
- (semantic-tag $1 'ZEND_AST_LIST_ADD :new-element $3)))
- ((possible_array_pair)
- (wisent-raw-tag
- (semantic-tag "" 'phps-mode-parser--zend_ast_array :elements
@elements :size 1))))
- (array_pair
- ((expr T_DOUBLE_ARROW expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_array_elem $3 $1)))
- ((expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_array_elem $1 nil)))
- ((expr T_DOUBLE_ARROW BITWISE_AND variable)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_array_elem 'ZEND_AST_EX
:operator 1 :subject $4 :subject2 $1)))
- ((BITWISE_AND variable)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_array_elem 'ZEND_AST_EX
:operator 1 :subject $2)))
- ((T_ELLIPSIS expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_unpack $2)))
- ((expr T_DOUBLE_ARROW T_LIST OPEN_PARENTHESIS array_pair_list
CLOSE_PARENTHESIS)
- (progn
- (semantic-tag-put-attribute $4 'attr
'phps-mode-parser--zend_array_syntax_list)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_array_elem $5 $1))))
- ((T_LIST OPEN_PARENTHESIS array_pair_list CLOSE_PARENTHESIS)
- (progn
- (semantic-tag-put-attribute $3 'attr
'phps-mode-parser--zend_array_syntax_list)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_array_elem $3 nil)))))
- (encaps_list
- ((encaps_list encaps_var)
- (wisent-raw-tag
- (semantic-tag $1 'ZEND_AST_LIST_ADD :new-element $2)))
- ((encaps_list T_ENCAPSED_AND_WHITESPACE)
- (wisent-raw-tag
- (semantic-tag $1 'ZEND_AST_LIST_ADD :new-element $2)))
- ((encaps_var)
- (wisent-raw-tag
- (semantic-tag "" 'phps-mode-parser--zend_ast_encaps_list :elements
@elements :size 1)))
- ((T_ENCAPSED_AND_WHITESPACE encaps_var)
- (wisent-raw-tag
- (semantic-tag "" 'phps-mode-parser--zend_ast_encaps_list :elements
@elements :size 2))))
- (encaps_var
- ((T_VARIABLE)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_var $1)))
- ((T_VARIABLE OPEN_SQUARE_BRACKET encaps_var_offset
CLOSE_SQUARE_BRACKET)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_dim
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_var $1))
- $3)))
- ((T_VARIABLE T_OBJECT_OPERATOR T_STRING)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_prop
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_var $1))
- $3)))
- ((T_DOLLAR_OPEN_CURLY_BRACES expr CLOSE_CURLY_BRACKET)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_var $2)))
- ((T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME CLOSE_CURLY_BRACKET)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_var $2)))
- ((T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME OPEN_SQUARE_BRACKET expr
CLOSE_SQUARE_BRACKET CLOSE_CURLY_BRACKET)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_dim
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_var $2))
- $4)))
- ((T_CURLY_OPEN variable CLOSE_CURLY_BRACKET)
- ($2)))
- (encaps_var_offset
- ((T_STRING)
- ($1))
- ((T_NUM_STRING)
- ($1))
- ((45 T_NUM_STRING)
- (*
- (string-to-number $2)
- -1))
- ((T_VARIABLE)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_var $1))))
- (dereferencable_scalar
- ((T_ARRAY OPEN_PARENTHESIS array_pair_list CLOSE_PARENTHESIS)
- (progn
- (semantic-tag-put-attribute $3 'attr
'phps-mode-parser--zend_array_syntax_long)
- $3))
- ((OPEN_SQUARE_BRACKET array_pair_list CLOSE_SQUARE_BRACKET)
- (progn
- (semantic-tag-put-attribute $2 'attr
'phps-mode-parser--zend_array_syntax_short)
- $2))
- ((T_CONSTANT_ENCAPSED_STRING)
- ($1))
- ((DOUBLE_QUOTE encaps_list DOUBLE_QUOTE)
- ($2)))
- (optional_expr
- (nil
- (nil))
- ((expr)
- ($1)))
- (variable_class_name
- ((fully_dereferencable)
- ($1)))
- (fully_dereferencable
- ((variable)
- ($1))
- ((OPEN_PARENTHESIS expr CLOSE_PARENTHESIS)
- ($2))
- ((dereferencable_scalar)
- ($1))
- ((class_constant)
- ($1)))
- (array_object_dereferencable
- ((fully_dereferencable)
- ($1))
- ((constant)
- ($1)))
- (callable_expr
- ((callable_variable)
- ($1))
- ((OPEN_PARENTHESIS expr CLOSE_PARENTHESIS)
- ($2))
- ((dereferencable_scalar)
- ($1)))
- (callable_variable
- ((simple_variable)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_var $1)))
- ((array_object_dereferencable OPEN_SQUARE_BRACKET optional_expr
CLOSE_SQUARE_BRACKET)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_dim $1 $3)))
- ((array_object_dereferencable OPEN_CURLY_BRACKET expr
CLOSE_CURLY_BRACKET)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_dim 'ZEND_AST_EX :operator
'phps-mode-parser--zend_dim_alternative_syntax :subject $1 :subject2 $3)))
- ((array_object_dereferencable T_OBJECT_OPERATOR property_name
argument_list)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_method_call $1 $3 $4)))
- ((function_call)
- ($1)))
- (variable
- ((callable_variable)
- ($1))
- ((static_member)
- ($1))
- ((array_object_dereferencable T_OBJECT_OPERATOR property_name)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_prop $1 $2))))
- (simple_variable
- ((T_VARIABLE)
- ($1))
- ((DOLLAR_SIGN OPEN_CURLY_BRACKET expr CLOSE_CURLY_BRACKET)
- ($3))
- ((DOLLAR_SIGN simple_variable)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_var $2))))
- (static_member
- ((class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_static_prop $1 $3)))
- ((variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_static_prop $1 $3))))
- (expr
- ((variable)
- ($1))
- ((T_LIST OPEN_PARENTHESIS array_pair_list CLOSE_PARENTHESIS ASSIGN
expr)
- (progn
- (semantic-tag-put-attribute $3 'attr
phps-mode-parser--zend_array_syntax_list)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_assign $3 $6))
- | OPEN_SQUARE_BRACKET array_pair_list CLOSE_SQUARE_BRACKET ASSIGN
expr
- (progn
- (semantic-tag-put-attribute $2 'attr
'phps-mode-parser--zend_array_syntax_short)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_assign $2 $5)))
- | variable ASSIGN expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_assign $1 $3))
- | variable ASSIGN BITWISE_AND variable
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_assign_ref $1 $4))
- | T_CLONE expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_clone $2))
- | variable T_PLUS_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_add 'ZEND_AST_ASSIGN_OP
:object $3 :subject $1))
- | variable T_MINUS_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_sub 'ZEND_AST_ASSIGN_OP
:object $3 :subject $1))
- | variable T_MUL_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_mul 'ZEND_AST_ASSIGN_OP
:object $3 :subject $1))
- | variable T_POW_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_pow 'ZEND_AST_ASSIGN_OP
:object $3 :subject $1))
- | variable T_DIV_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_div 'ZEND_AST_ASSIGN_OP
:object $3 :subject $1))
- | variable T_CONCAT_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_concat 'ZEND_AST_ASSIGN_OP
:object $3 :subject $1))
- | variable T_MOD_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_mod 'ZEND_AST_ASSIGN_OP
:object $3 :subject $1))
- | variable T_AND_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_bw_and 'ZEND_AST_ASSIGN_OP
:object $3 :subject $1))
- | variable T_OR_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_bw_or 'ZEND_AST_ASSIGN_OP
:object $3 :subject $1))
- | variable T_XOR_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_bw_xor 'ZEND_AST_ASSIGN_OP
:object $3 :subject $1))
- | variable T_SL_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_sl 'ZEND_AST_ASSIGN_OP
:object $3 :subject $1))
- | variable T_SR_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_sr 'ZEND_AST_ASSIGN_OP
:object $3 :subject $1))
- | variable T_COALESCE_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_coalesce $1 $3))
- | variable T_INC
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_post_inc $1))
- | T_INC variable
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_pre_inc $2))
- | variable T_DEC
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_post_dec $1))
- | T_DEC variable
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_pre_inc $2))
- | expr T_BOOLEAN_OR expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_or $1 $3))
- | expr T_BOOLEAN_AND expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_and $1 $3))
- | expr T_LOGICAL_OR expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_or $1 $3))
- | expr T_LOGICAL_AND expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_and $1 $3))
- | expr T_LOGICAL_XOR expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_bool_xor 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | expr BITWISE_OR expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_bw_or 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | expr BITWISE_AND expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_bw_and 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | expr POW expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_bw_xor 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | expr DOT expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_concat 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | expr ADDITION expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_add 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | expr SUBTRACTION expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_sub 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | expr MULTIPLICATION expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_mul 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | expr T_POW expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_pow 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | expr DIVISION expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_div 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | expr MODULO expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_mod 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | expr T_SL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_sl 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | expr T_SR expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_sr 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | ADDITION expr prec UNARY
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_unary_plus $1 $2))
- | SUBTRACTION expr prec UNARY
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_unary_minus $1 $2))
- | NEGATION expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_unary_op 'ZEND_AST_EX
:operator 'phps-mode-parser--zend_bool_not :subject $2))
- | UNARY expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_unary_op 'ZEND_AST_EX
:operator 'phps-mode-parser--zend_bw_not :subject $2))
- | expr T_IS_IDENTICAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_is_identical
'ZEND_AST_BINARY_OP :object $3 :subject $1))
- | expr T_IS_NOT_IDENTICAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_is_not_identical
'ZEND_AST_BINARY_OP :object $3 :subject $1))
- | expr T_IS_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_is_equal 'ZEND_AST_BINARY_OP
:object $3 :subject $1))
- | expr T_IS_NOT_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_is_not_equal
'ZEND_AST_BINARY_OP :object $3 :subject $1))
- | expr LESSER_THAN expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_is_smaller
'ZEND_AST_BINARY_OP :object $3 :subject $1))
- | expr T_IS_SMALLER_OR_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_is_smaller_or_equal
'ZEND_AST_BINARY_OP :object $3 :subject $1))
- | expr GREATER_THAN expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_is_greater
'ZEND_AST_BINARY_OP :object $3 :subject $1))
- | expr T_IS_GREATER_OR_EQUAL expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_is_greater_or_equal
'ZEND_AST_BINARY_OP :object $3 :subject $1))
- | expr T_SPACESHIP expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_spaceship
'ZEND_AST_BINARY_OP :object $3 :subject $1))
- | expr T_INSTANCEOF class_name_reference
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_instanceof $1 $3))
- | OPEN_PARENTHESIS expr CLOSE_PARENTHESIS
- (progn
- (when
- (equal
- (semantic-tag-get-attribute $2 'kind)
- 'phps-mode-parser--zend_ast_conditional)
- (semantic-tag-put-attribute $2 'attr
'phps-mode-parser--zend_parenthesized_conditional))
- $2)
- | new_expr
- ($1)
- | expr QUESTION_MARK expr COLON expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_conditional $1 $3 $5))
- | expr QUESTION_MARK COLON expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_conditional $1 nil $4))
- | expr T_COALESCE expr
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_coalesce $1 $3))
- | internal_functions_in_yacc
- ($1)))
- ((T_INT_CAST expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--is_long 'ZEND_AST_CAST :subject
$2)))
- ((T_DOUBLE_CAST expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--is_double 'ZEND_AST_CAST :subject
$2)))
- ((T_STRING_CAST expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--is_string 'ZEND_AST_CAST :subject
$2)))
- ((T_ARRAY_CAST expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--is_array 'ZEND_AST_CAST :subject
$2)))
- ((T_OBJECT_CAST expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--is_object 'ZEND_AST_CAST :subject
$2)))
- ((T_BOOL_CAST expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--is_bool 'ZEND_AST_CAST :subject
$2)))
- ((T_UNSET_CAST expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--is_unset 'ZEND_AST_CAST :subject
$2)))
- ((T_EXIT exit_expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_exit $2)))
- ((AT expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_silence $2)))
- ((scalar)
- ($1))
- ((BACKTICK backticks_expr BACKTICK)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_shell $2)))
- ((T_PRINT expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_print $2)))
- ((T_YIELD)
- (progn
- (phps-mode-parser-grammar-macro-CG 'phps-mode-parser--extra_fn_flags
- (logior
-
(phps-mode-parser-grammar-macro-CG 'phps-mode-parser--extra_fn_flags)
-
'phps-mode-parser--zend_acc_generator))
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_yield nil nil))))
- ((T_YIELD expr)
- (progn
- (phps-mode-parser-grammar-macro-CG 'phps-mode-parser--extra_fn_flags
- (logior
-
(phps-mode-parser-grammar-macro-CG 'phps-mode-parser--extra_fn_flags)
-
'phps-mode-parser--zend_acc_generator))
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_yield $2 nil))))
- ((T_YIELD expr T_DOUBLE_ARROW expr)
- (progn
- (phps-mode-parser-grammar-macro-CG 'phps-mode-parser--extra_fn_flags
- (logior
-
(phps-mode-parser-grammar-macro-CG 'phps-mode-parser--extra_fn_flags)
-
'phps-mode-parser--zend_acc_generator))
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_yield $4 $2))))
- ((T_YIELD_FROM expr)
- (progn
- (phps-mode-parser-grammar-macro-CG 'phps-mode-parser--extra_fn_flags
- (logior
-
(phps-mode-parser-grammar-macro-CG 'phps-mode-parser--extra_fn_flags)
-
'phps-mode-parser--zend_acc_generator))
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_yield_from $2))))
- ((T_THROW expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_throw $2)))
- ((inline_function)
- ($1))
- ((T_STATIC inline_function)
- (progn
- (semantic-tag-put-attribute $2 'flags
- (logior
- (semantic-tag-get-attribute $2 'flags)
- 'phps-mode-parser--zend_acc_static))
- $2)))
- (isset_variable
- ((expr)
- (wisent-raw-tag
- (semantic-tag 'phps-mode-parser--zend_ast_isset $1)))))
- '(isset_variable)))
- "Parser table.")
-
-(defun phps-mode--install-parser ()
- "Setup the Semantic Parser."
- (semantic-install-function-overrides
- '((semantic-parse-stream . wisent-parse-stream)))
- (setq semantic-parser-name "LALR"
- semantic--parse-table phps-mode--parse-table
- semantic-debug-parser-source "phps-mode-parser-grammar.wy"
- semantic-flex-keywords-obarray phps-mode--keyword-table
- semantic-lex-types-obarray phps-mode--token-table)
- ;; Collect unmatched syntax lexical tokens
- (add-hook 'wisent-discarding-token-functions
- 'wisent-collect-unmatched-syntax nil t))
-
-
-;;; Analyzers
-;;
-(define-lex-string-type-analyzer phps-mode--<punctuation>-string-analyzer
- "string analyzer for <punctuation> tokens."
- "\\(\\s.\\|\\s$\\|\\s'\\)+"
- '((UNARY . "~")
- (SUBTRACTION . "-")
- (SINGLE_QUOTE . "'")
- (QUESTION_MARK . "?")
- (POW . "^")
- (OPEN_SQUARE_BRACKET . "[")
- (OPEN_PARENTHESIS . "(")
- (OPEN_CURLY_BRACKET . "{")
- (NEGATION . "!")
- (MULTIPLICATION . "*")
- (MODULO . "%")
- (LESSER_THAN . "<")
- (GREATER_THAN . ">")
- (DOT . ".")
- (DIVISION . "/")
- (DOUBLE_QUOTE . "\"")
- (DOLLAR_SIGN . "$")
- (COMMA . ",")
- (COLON . ":")
- (CLOSE_SQUARE_BRACKET . "]")
- (CLOSE_PARENTHESIS . ")")
- (CLOSE_CURLY_BRACKET . "]")
- (BITWISE_OR . "|")
- (BITWISE_AND . "&")
- (BACKTICK . "`")
- (AT . "@")
- (ASSIGN . "=")
- (ADDITION . "+"))
- 'punctuation)
-
-
-;;; Epilogue
-;;
-
-
-(provide 'phps-mode-wy)
-
-;; Local Variables:
-;; version-control: never
-;; no-update-autoloads: t
-;; End:
-
-;;; phps-mode-wy.el ends here
diff --git a/phps-mode.el b/phps-mode.el
index 52e1944..c9ff975 100644
--- a/phps-mode.el
+++ b/phps-mode.el
@@ -5,8 +5,8 @@
;; Author: Christian Johansson <christian@cvj.se>
;; Maintainer: Christian Johansson <christian@cvj.se>
;; Created: 3 Mar 2018
-;; Modified: 23 Sep 2020
-;; Version: 0.3.62
+;; Modified: 16 Oct 2020
+;; Version: 0.3.63
;; Keywords: tools, convenience
;; URL: https://github.com/cjohansson/emacs-phps-mode
diff --git a/test/phps-mode-test-lex-analyzer.el
b/test/phps-mode-test-lex-analyzer.el
index 9d27428..aafc658 100644
--- a/test/phps-mode-test-lex-analyzer.el
+++ b/test/phps-mode-test-lex-analyzer.el
@@ -1309,6 +1309,24 @@
(let ((buffer-contents (buffer-substring-no-properties (point-min)
(point-max))))
(should (equal buffer-contents "<?php\n$var = '123';\n$var = 'abc';\n"))))
+ (phps-mode-test--with-buffer
+ "<?php\n$var1 = '123';"
+ "Comment region after changes has been made to buffer"
+ (goto-char 19)
+ (insert " def")
+ (comment-region 7 (point-max))
+ (let ((buffer-contents (buffer-substring-no-properties (point-min)
(point-max))))
+ (should (equal buffer-contents "<?php\n/* $var1 = '123 def'; */"))))
+
+ (phps-mode-test--with-buffer
+ "<?php\n/* $var1 = '123'; */"
+ "Un-comment region after changes has been made to buffer"
+ (goto-char 22)
+ (insert " def")
+ (uncomment-region 7 (point-max))
+ (let ((buffer-contents (buffer-substring-no-properties (point-min)
(point-max))))
+ (should (equal buffer-contents "<?php\n$var1 = '123 def';"))))
+
)
(defun phps-mode-test-lex-analyzer--get-inline-html-indentation ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/phps-mode adb54ae: Fixed comment/un-comment in buffer with un-processed changes,
Christian Johansson <=