Mercurial > octave
comparison libinterp/parse-tree/lex.ll @ 28517:6e8a9845d118
Add 'spmd' as interpreter keyword for Matlab compatibility (bug #58676).
* op-kw-docs: Document 'spmd', 'endspmd' keywords.
* lex.ll (base_lexer::make_keyword_token): Add case statements for 'spmd',
'endspmd'. Code is not correct, but something is required to prevent segfault.
* oct-parse.yy: Add SPMD token type.
* oct-parse.yy (end_token_as_string): Add case statement for 'endspmd'.
* octave.gperf: Add endspmd_kw, spmd_kw to enum octave_kw_id. Add declarations
to octave_kw struct for endspmd, spmd.
* token.h: Add spmd_end to enm end_tok_type.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 30 Jun 2020 09:34:14 -0700 |
parents | 808e3964987b |
children | a5541f5a78dd |
comparison
equal
deleted
inserted
replaced
28516:70d155283f33 | 28517:6e8a9845d118 |
---|---|
2761 tok_val = new token (endproperties_kw, token::properties_end, m_tok_beg, | 2761 tok_val = new token (endproperties_kw, token::properties_end, m_tok_beg, |
2762 m_tok_end); | 2762 m_tok_end); |
2763 m_at_beginning_of_statement = true; | 2763 m_at_beginning_of_statement = true; |
2764 break; | 2764 break; |
2765 | 2765 |
2766 | |
2767 case for_kw: | 2766 case for_kw: |
2768 case parfor_kw: | 2767 case parfor_kw: |
2769 case while_kw: | 2768 case while_kw: |
2770 m_looping++; | 2769 m_looping++; |
2771 break; | 2770 break; |
2840 // to the function keyword. | 2839 // to the function keyword. |
2841 | 2840 |
2842 m_filepos = filepos (); | 2841 m_filepos = filepos (); |
2843 update_token_positions (slen); | 2842 update_token_positions (slen); |
2844 } | 2843 } |
2844 break; | |
2845 | |
2846 /* Unimplementd 'spmd' keyword for Matlab compatibility only. | |
2847 FIXME: Allow spmd statement, but treat as no-op, bug #58676. */ | |
2848 case spmd_kw: | |
2849 /* m_at_beginning_of_statement = true; */ | |
2850 break; | |
2851 | |
2852 case endspmd_kw: | |
2853 /* | |
2854 tok_val = new token (endspmd_kw, token::spmd_end, m_tok_beg, | |
2855 m_tok_end); | |
2856 m_at_beginning_of_statement = true; | |
2857 */ | |
2845 break; | 2858 break; |
2846 | 2859 |
2847 case magic_file_kw: | 2860 case magic_file_kw: |
2848 { | 2861 { |
2849 if ((m_reading_fcn_file || m_reading_script_file | 2862 if ((m_reading_fcn_file || m_reading_script_file |