[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode c4a8ca5 016/405: Free lexer tokens does not h
From: |
Stefan Monnier |
Subject: |
[elpa] externals/phps-mode c4a8ca5 016/405: Free lexer tokens does not have properties anymore |
Date: |
Sat, 13 Jul 2019 09:59:30 -0400 (EDT) |
branch: externals/phps-mode
commit c4a8ca59f82cc3005439c6dbf6259f2065b65354
Author: Christian Johansson <address@hidden>
Commit: Christian Johansson <address@hidden>
Free lexer tokens does not have properties anymore
---
phps-lexer.el | 60 +++++++++++++++++++++++-----------------------
sample-php-files/class.php | 13 +++++++++-
2 files changed, 42 insertions(+), 31 deletions(-)
diff --git a/phps-lexer.el b/phps-lexer.el
index 3fc860e..3e84f52 100644
--- a/phps-lexer.el
+++ b/phps-lexer.el
@@ -533,7 +533,7 @@
((looking-at (concat "<<<" phps-mode/TABS_AND_SPACES "\\(" phps-mode/LABEL
"\\|'" phps-mode/LABEL "'\\|\"" phps-mode/LABEL "\"\\)" phps-mode/NEWLINE))
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring (match-beginning 1) (match-end 1)))
+ (data (buffer-substring-no-properties (match-beginning 1)
(match-end 1)))
(heredoc_label))
;; Determine if it's HEREDOC or NOWDOC and extract label here
@@ -548,7 +548,7 @@
(phps-mode/BEGIN phps-mode/ST_HEREDOC)))
;; Check for ending label on the next line
- (when (string= (buffer-substring end (+ end (length heredoc_label)))
heredoc_label)
+ (when (string= (buffer-substring-no-properties end (+ end (length
heredoc_label))) heredoc_label)
(phps-mode/BEGIN phps-mode/ST_END_HEREDOC))
(push heredoc_label phps-mode/heredoc_label_stack)
@@ -706,7 +706,7 @@
((looking-at phps-mode/BNUM)
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring (+ start 2) end))
+ (data (buffer-substring-no-properties (+ start 2) end))
(long-number (string-to-number data 2)))
;; (message "Binary number %s from %s" long-number data)
(if (> long-number phps-mode/long-limit)
@@ -716,7 +716,7 @@
((looking-at phps-mode/HNUM)
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring (+ start 2) end))
+ (data (buffer-substring-no-properties (+ start 2) end))
(long-number (string-to-number data 16)))
;; (message "Hexadecimal number %s from %s" long-number data)
(if (> long-number phps-mode/long-limit)
@@ -727,14 +727,14 @@
(looking-at phps-mode/DNUM))
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring start end)))
+ (data (buffer-substring-no-properties start end)))
;; (message "Exponent/double at: %s" data)
(phps-mode/RETURN_TOKEN 'T_DNUMBER start end)))
((looking-at phps-mode/LNUM)
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (string-to-number (buffer-substring start end))))
+ (data (string-to-number (buffer-substring-no-properties start
end))))
;; (message "Long number: %d" data)
(if (> data phps-mode/long-limit)
(phps-mode/RETURN_TOKEN 'T_DNUMBER start end)
@@ -760,8 +760,8 @@
((looking-at "\\(//\\|#\\)")
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring start end))
- (line (buffer-substring (line-beginning-position)
(line-end-position))))
+ (data (buffer-substring-no-properties start end))
+ (line (buffer-substring-no-properties (line-beginning-position)
(line-end-position))))
(if (string-match "\\?>" line)
(progn
(phps-mode/RETURN_TOKEN 'T_COMMENT start (match-end 0))
@@ -774,7 +774,7 @@
((looking-at (concat "/\\*\\*" phps-mode/WHITESPACE))
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring start end)))
+ (data (buffer-substring-no-properties start end)))
(let ((string-start (search-forward "*/" nil t))
position)
(if string-start
@@ -788,7 +788,7 @@
((looking-at "/\\*")
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring start end)))
+ (data (buffer-substring-no-properties start end)))
(let ((string-start (search-forward "*/" nil t))
position)
(if string-start
@@ -807,7 +807,7 @@
((looking-at phps-mode/TOKENS)
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring start end))
+ (data (buffer-substring-no-properties start end))
(use-brace nil))
;; (message "Found token '%s'" data)
(when phps-mode/declaring_namespace
@@ -824,13 +824,13 @@
((looking-at "'")
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring start end))
+ (data (buffer-substring-no-properties start end))
(found nil))
(forward-char)
(let ((string-start (search-forward-regexp "[^\\\\]'" nil t)))
(if string-start
(progn
- ;; (message "Single quoted string %s" (buffer-substring start
string-start))
+ ;; (message "Single quoted string %s"
(buffer-substring-no-properties start string-start))
(phps-mode/RETURN_TOKEN 'T_CONSTANT_ENCAPSED_STRING start
string-start))
(progn
;; Handle the '' case
@@ -850,7 +850,7 @@
((looking-at "\"")
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring start end)))
+ (data (buffer-substring-no-properties start end)))
(forward-char)
(let ((string-start (search-forward-regexp (concat
"\\([^\\\\]\""
@@ -866,11 +866,11 @@
(goto-char string-start)
(if (looking-at "[^\\\\]\"")
(progn
- (let ((double-quoted-string (buffer-substring start (+
string-start 2))))
+ (let ((double-quoted-string
(buffer-substring-no-properties start (+ string-start 2))))
;; (message "Double quoted string: %s"
double-quoted-string)
(phps-mode/RETURN_TOKEN 'T_CONSTANT_ENCAPSED_STRING
start (+ string-start 2))))
(progn
- ;; (message "Found variable after '%s'" (buffer-substring
start (point)))
+ ;; (message "Found variable after '%s'"
(buffer-substring-no-properties start (point)))
(phps-mode/BEGIN phps-mode/ST_DOUBLE_QUOTES)
(phps-mode/RETURN_TOKEN "\"" start (+ start 1))
(phps-mode/RETURN_TOKEN 'T_ENCAPSED_AND_WHITESPACE (+ start
1) string-start))))
@@ -894,7 +894,7 @@
((looking-at phps-mode/WHITESPACE)
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring start end)))
+ (data (buffer-substring-no-properties start end)))
(if phps-mode/PARSER_MODE
(phps-mode/MOVE_FORWARD end)
(phps-mode/RETURN_TOKEN data start end))))
@@ -907,7 +907,7 @@
((looking-at phps-mode/ANY_CHAR)
;; Unexpected character
- ;; (message "Unexpected character '%s'" (buffer-substring (match-beginning
0) (match-end 0)))
+ ;; (message "Unexpected character '%s'" (buffer-substring-no-properties
(match-beginning 0) (match-end 0)))
(phps-mode/RETURN_TOKEN 'T_ERROR (match-beginning 0) (point-max))
(phps-mode/MOVE_FORWARD (point-max)))
@@ -926,7 +926,7 @@
((looking-at phps-mode/WHITESPACE)
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring start end)))
+ (data (buffer-substring-no-properties start end)))
(if phps-mode/PARSER_MODE
(phps-mode/MOVE_FORWARD end)
(phps-mode/RETURN_TOKEN 'T_WHITESPACE start end))
@@ -995,7 +995,7 @@
(let ((string-start (search-forward-regexp "[^\\\\]\"" nil t)))
(if string-start
(let* ((end (- (match-end 0) 1))
- (double-quoted-string (buffer-substring start end)))
+ (double-quoted-string (buffer-substring-no-properties start
end)))
;; Do we find variable inside quote?
(if (or (string-match (concat "\\$" phps-mode/LABEL)
double-quoted-string)
(string-match (concat "\\${" phps-mode/LABEL)
double-quoted-string)
@@ -1006,7 +1006,7 @@
))
(progn
(phps-mode/RETURN_TOKEN 'T_CONSTANT_ENCAPSED_STRING start
end)
- ;; (message "Found end of quote at %s-%s, moving ahead after
'%s'" start end (buffer-substring start end))
+ ;; (message "Found end of quote at %s-%s, moving ahead after
'%s'" start end (buffer-substring-no-properties start end))
)))
(progn
;; "Found no end of double-quoted region
@@ -1055,11 +1055,11 @@ ANY_CHAR'
(let ((string-start (search-forward-regexp
"\\([^\\\\]`\\|\\$\\|{\\)" nil t)))
(if string-start
(let ((start (- (match-end 0) 1)))
- ;; (message "Skipping backquote forward over %s"
(buffer-substring old-start start))
+ ;; (message "Skipping backquote forward over %s"
(buffer-substring-no-properties old-start start))
(phps-mode/RETURN_TOKEN 'T_CONSTANT_ENCAPSED_STRING
old-start start)
)
(progn
- ;; (message "Found no end of backquote.. skipping to end from
%s" (buffer-substring (point) (point-max)))
+ ;; (message "Found no end of backquote.. skipping to end from
%s" (buffer-substring-no-properties (point) (point-max)))
(phps-mode/RETURN_TOKEN 'T_ERROR old-start (point-max))
(phps-mode/MOVE_FORWARD (point-max))))))
@@ -1100,13 +1100,13 @@ ANY_CHAR'
(phps-mode/RETURN_TOKEN 'T_CURLY_OPEN (match-beginning 0) (- (match-end
0) 1)))
((looking-at phps-mode/ANY_CHAR)
- ;; (message "Found nothing useful at '%s' looking at {$ %s"
(buffer-substring (point) (point-max)) (looking-at "{\\$"))
+ ;; (message "Found nothing useful at '%s' looking at {$ %s"
(buffer-substring-no-properties (point) (point-max)) (looking-at "{\\$"))
;; Check for $, ${ and {$ forward
(let ((string-start (search-forward-regexp (concat "\\(\n" heredoc_label
";?\n\\|\\$" phps-mode/LABEL "\\|{\\$" phps-mode/LABEL "\\|\\${"
phps-mode/LABEL "\\)") nil t)))
(if string-start
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring start end)))
+ (data (buffer-substring-no-properties start end)))
;; (message "Found something ending at %s" data)
(cond
@@ -1123,7 +1123,7 @@ ANY_CHAR'
))
(progn
- ;; (message "Found no ending of heredoc at %s '%s'" heredoc_label
(buffer-substring (point) (point-max)))
+ ;; (message "Found no ending of heredoc at %s '%s'" heredoc_label
(buffer-substring-no-properties (point) (point-max)))
(phps-mode/RETURN_TOKEN 'T_ERROR old-start (point-max))
(phps-mode/MOVE_FORWARD (point-max))
))))
@@ -1144,14 +1144,14 @@ ANY_CHAR'
(if string-start
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring start end)))
+ (data (buffer-substring-no-properties start end)))
;; (message "Found something ending at %s" data)
;; (message "Found nowdoc end at %s-%s" start end)
(phps-mode/BEGIN phps-mode/ST_END_HEREDOC)
(phps-mode/RETURN_TOKEN 'T_ENCAPSED_AND_WHITESPACE old-start
start)
)
(progn
- ;; (message "Found no ending of nowdoc at %s '%s'" heredoc_label
(buffer-substring (point) (point-max)))
+ ;; (message "Found no ending of nowdoc at %s '%s'" heredoc_label
(buffer-substring-no-properties (point) (point-max)))
(phps-mode/RETURN_TOKEN 'T_ERROR old-start (point-max))
(phps-mode/MOVE_FORWARD (point-max))
))))
@@ -1186,7 +1186,7 @@ ANY_CHAR'
(let* ((start (match-beginning 0))
(end (+ start (length heredoc_label) 1))
- (data (buffer-substring start end)))
+ (data (buffer-substring-no-properties start end)))
;; (message "Found ending heredoc at %s, %s of %s" data
(thing-at-point 'line) heredoc_label)
(pop phps-mode/heredoc_label_stack)
(phps-mode/BEGIN phps-mode/ST_IN_SCRIPTING)
@@ -1227,7 +1227,7 @@ ANY_CHAR'
"\\|[{}\"`]\\)"))
(let* ((start (match-beginning 0))
(end (match-end 0))
- (data (buffer-substring start end)))
+ (data (buffer-substring-no-properties start end)))
(phps-mode/RETURN_TOKEN data start end)))
((looking-at (concat "[ \n\r\t'#]"))
diff --git a/sample-php-files/class.php b/sample-php-files/class.php
index 05a5e11..f3c81bf 100644
--- a/sample-php-files/class.php
+++ b/sample-php-files/class.php
@@ -6,13 +6,24 @@
class MyClass {
+ /**
+ * @var string
+ */
+ private $var = 'abc';
+
public function myMethod()
{
echo "Some stuff here"; // Just a comment
}
public function myMethod2() {
- echo "Some stuff here 2";
+ echo "Some stuff here 2";
+ }
+
+ public function myMethod3() {
+ if (!empty($this->var)) {
+ $this->var = '';
+ }
}
}
- [elpa] externals/phps-mode a724438 010/405: Handled lexing with empty single and double quote string, (continued)
- [elpa] externals/phps-mode a724438 010/405: Handled lexing with empty single and double quote string, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 5a6a96b 012/405: Added another test, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode b3a6308 015/405: Added hook for resetting lexer variables, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode ce656a5 006/405: More general cleaning up, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode f3205d5 011/405: Fixed lexing of basic tokens, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 31ca9d5 007/405: More cleaning up, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 79040dc 005/405: Some cleaning up, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 394f7ae 017/405: Fixed issue with empty strings before non-empty strings, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 41c4fbb 009/405: Lexer unit tests now working, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode be078dc 020/405: Updated readme, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode c4a8ca5 016/405: Free lexer tokens does not have properties anymore,
Stefan Monnier <=
- [elpa] externals/phps-mode 8ed0716 022/405: Started with unit tests for getting point lexer data, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode abcfd01 021/405: Started with function to gather current point data, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 2475734 018/405: Improved logic for single quoted strings, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 795053b 013/405: Lexer unit tests using start and ends as well, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 95e749e 028/405: Started with indentation function, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 3202213 025/405: Added another unit test for lexer, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode bf59f0a 023/405: More unit tests for getting point lex information, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode de771b5 019/405: Added more unit tests, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode e3a060a 026/405: Handles script breaking single-line comments, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 7fa9fdb 024/405: More unit tests for lexing comments and doc comments, Stefan Monnier, 2019/07/13