⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 syntax.h

📁 早期freebsd实现
💻 H
字号:
/* Declarations having to do with GNU Emacs syntax tables.   Copyright (C) 1985 Free Software Foundation, Inc.This file is part of GNU Emacs.GNU Emacs is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 1, or (at your option)any later version.GNU Emacs is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Emacs; see the file COPYING.  If not, write tothe Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */extern Lisp_Object Qsyntax_table_p;extern Lisp_Object Fsyntax_table_p (), Fsyntax_table (), Fset_syntax_table ();/* The standard syntax table is stored where it will automatically   be used in all new buffers.  */#define Vstandard_syntax_table buffer_defaults.syntax_table/* A syntax table is a Lisp vector of length 0400, whose elements are integers.The low 8 bits of the integer is a code, as follows:*/enum syntaxcode  {    Swhitespace, /* for a whitespace character */    Spunct,	 /* for random punctuation characters */    Sword,	 /* for a word constituent */    Ssymbol,	 /* symbol constituent but not word constituent */    Sopen,	 /* for a beginning delimiter */    Sclose,      /* for an ending delimiter */    Squote,	 /* for a prefix character like Lisp ' */    Sstring,	 /* for a string-grouping character like Lisp " */    Smath,	 /* for delimiters like $ in Tex. */    Sescape,	 /* for a character that begins a C-style escape */    Scharquote,  /* for a character that quotes the following character */    Scomment,    /* for a comment-starting character */    Sendcomment, /* for a comment-ending character */    Smax	 /* Upper bound on codes that are meaningful */  };#define SYNTAX(c) \  ((enum syntaxcode) (XINT (XVECTOR (current_buffer->syntax_table)->contents[c]) & 0377))/* The next 8 bits of the number is a character, the matching delimiter in the case of Sopen or Sclose. */#define SYNTAX_MATCH(c) \  ((XINT (XVECTOR (current_buffer->syntax_table)->contents[c]) >> 8) & 0377)/* Then there are four single-bit flags that have the following meanings:  1. This character is the first of a two-character comment-start sequence.  2. This character is the second of a two-character comment-start sequence.  3. This character is the first of a two-character comment-end sequence.  4. This character is the second of a two-character comment-end sequence. Note that any two-character sequence whose first character has flag 1  and whose second character has flag 2 will be interpreted as a comment start. */#define SYNTAX_COMSTART_FIRST(c) \  ((XINT (XVECTOR (current_buffer->syntax_table)->contents[c]) >> 16) & 1)#define SYNTAX_COMSTART_SECOND(c) \  ((XINT (XVECTOR (current_buffer->syntax_table)->contents[c]) >> 17) & 1)#define SYNTAX_COMEND_FIRST(c) \  ((XINT (XVECTOR (current_buffer->syntax_table)->contents[c]) >> 18) & 1)#define SYNTAX_COMEND_SECOND(c) \  ((XINT (XVECTOR (current_buffer->syntax_table)->contents[c]) >> 19) & 1)/* This array, indexed by a character, contains the syntax code which that character signifies (as a char).  For example, (enum syntaxcode) syntax_spec_code['w'] is Sword. */extern char syntax_spec_code[0400];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -