mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Run clang-format on parser.ypp and lexer.lpp (#738)
Co-authored-by: Geoff Romer <gromer@google.com>
This commit is contained in:
committed by
GitHub
co-authored by
Geoff Romer
parent
973759f0ff
commit
9f67c4b9a8
@@ -5,15 +5,14 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
*/
|
||||
|
||||
%{
|
||||
#include <cstdlib>
|
||||
|
||||
#include <cstdlib>
|
||||
|
||||
#include "common/check.h"
|
||||
#include "common/string_helpers.h"
|
||||
#include "executable_semantics/common/tracing_flag.h"
|
||||
#include "executable_semantics/syntax/parse_and_lex_context.h"
|
||||
#include "executable_semantics/syntax/parser.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "common/check.h"
|
||||
#include "common/string_helpers.h"
|
||||
#include "executable_semantics/common/tracing_flag.h"
|
||||
#include "executable_semantics/syntax/parse_and_lex_context.h"
|
||||
#include "executable_semantics/syntax/parser.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
%}
|
||||
|
||||
/* Turn off legacy bits we don't need. */
|
||||
@@ -29,6 +28,7 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
*/
|
||||
%s AFTER_OPERAND
|
||||
|
||||
/* Table begin. */
|
||||
AND "and"
|
||||
ARROW "->"
|
||||
AUTO "auto"
|
||||
@@ -75,14 +75,16 @@ TYPE "Type"
|
||||
UNDERSCORE "_"
|
||||
VAR "var"
|
||||
WHILE "while"
|
||||
/* Table end. */
|
||||
|
||||
/* This should be kept table-like, but isn't automatic due to spaces. */
|
||||
identifier [A-Za-z_][A-Za-z0-9_]*
|
||||
sized_type_literal [iuf][1-9][0-9]*
|
||||
integer_literal [0-9]+
|
||||
horizontal_whitespace [ \t\r]
|
||||
whitespace [ \t\r\n]
|
||||
one_line_comment \/\/[^\n]*\n
|
||||
operand_start [(A-Za-z0-9_"]
|
||||
operand_start [(A-Za-z0-9_\"]
|
||||
|
||||
/* Single-line string literals should reject vertical whitespace. */
|
||||
string_literal \"([^\\\"\n\v\f\r]|\\.)*\"
|
||||
@@ -93,18 +95,17 @@ string_literal \"([^\\\"\n\v\f\r]|\\.)*\"
|
||||
// Advances the current token position by yyleng columns without changing
|
||||
// the line number, and takes us out of the after-whitespace / after-operand
|
||||
// state.
|
||||
# define YY_USER_ACTION \
|
||||
context.current_token_position.columns(yyleng); \
|
||||
if (YY_START == AFTER_WHITESPACE || \
|
||||
YY_START == AFTER_OPERAND) { \
|
||||
BEGIN(INITIAL); \
|
||||
}
|
||||
#define YY_USER_ACTION \
|
||||
context.current_token_position.columns(yyleng); \
|
||||
if (YY_START == AFTER_WHITESPACE || YY_START == AFTER_OPERAND) { \
|
||||
BEGIN(INITIAL); \
|
||||
}
|
||||
|
||||
#define SIMPLE_TOKEN(name) \
|
||||
Carbon::Parser::make_##name(context.current_token_position);
|
||||
Carbon::Parser::make_##name(context.current_token_position);
|
||||
|
||||
#define ARG_TOKEN(name, arg) \
|
||||
Carbon::Parser::make_##name(arg, context.current_token_position);
|
||||
Carbon::Parser::make_##name(arg, context.current_token_position);
|
||||
%}
|
||||
|
||||
%%
|
||||
@@ -116,49 +117,51 @@ string_literal \"([^\\\"\n\v\f\r]|\\.)*\"
|
||||
context.current_token_position.step();
|
||||
%}
|
||||
|
||||
{AND} { return SIMPLE_TOKEN(AND); }
|
||||
{ARROW} { return SIMPLE_TOKEN(ARROW); }
|
||||
{AUTO} { return SIMPLE_TOKEN(AUTO); }
|
||||
{AWAIT} { return SIMPLE_TOKEN(AWAIT); }
|
||||
{BOOL} { return SIMPLE_TOKEN(BOOL); }
|
||||
{BREAK} { return SIMPLE_TOKEN(BREAK); }
|
||||
{CASE} { return SIMPLE_TOKEN(CASE); }
|
||||
{CHOICE} { return SIMPLE_TOKEN(CHOICE); }
|
||||
{CLASS} { return SIMPLE_TOKEN(CLASS); }
|
||||
{COLON_BANG} { return SIMPLE_TOKEN(COLON_BANG); }
|
||||
{COLON} { return SIMPLE_TOKEN(COLON); }
|
||||
{COMMA} { return SIMPLE_TOKEN(COMMA); }
|
||||
{CONTINUATION_TYPE} { return SIMPLE_TOKEN(CONTINUATION_TYPE); }
|
||||
{CONTINUATION} { return SIMPLE_TOKEN(CONTINUATION); }
|
||||
{CONTINUE} { return SIMPLE_TOKEN(CONTINUE); }
|
||||
{DEFAULT} { return SIMPLE_TOKEN(DEFAULT); }
|
||||
{DOUBLE_ARROW} { return SIMPLE_TOKEN(DOUBLE_ARROW); }
|
||||
{ELSE} { return SIMPLE_TOKEN(ELSE); }
|
||||
{EQUAL_EQUAL} { return SIMPLE_TOKEN(EQUAL_EQUAL); }
|
||||
{EQUAL} { return SIMPLE_TOKEN(EQUAL); }
|
||||
{FALSE} { return SIMPLE_TOKEN(FALSE); }
|
||||
{FNTY} { return SIMPLE_TOKEN(FNTY); }
|
||||
{FN} { return SIMPLE_TOKEN(FN); }
|
||||
{IF} { return SIMPLE_TOKEN(IF); }
|
||||
{LEFT_PARENTHESIS} { return SIMPLE_TOKEN(LEFT_PARENTHESIS); }
|
||||
{LEFT_CURLY_BRACE} { return SIMPLE_TOKEN(LEFT_CURLY_BRACE); }
|
||||
/* Table begin. */
|
||||
{AND} { return SIMPLE_TOKEN(AND); }
|
||||
{ARROW} { return SIMPLE_TOKEN(ARROW); }
|
||||
{AUTO} { return SIMPLE_TOKEN(AUTO); }
|
||||
{AWAIT} { return SIMPLE_TOKEN(AWAIT); }
|
||||
{BOOL} { return SIMPLE_TOKEN(BOOL); }
|
||||
{BREAK} { return SIMPLE_TOKEN(BREAK); }
|
||||
{CASE} { return SIMPLE_TOKEN(CASE); }
|
||||
{CHOICE} { return SIMPLE_TOKEN(CHOICE); }
|
||||
{CLASS} { return SIMPLE_TOKEN(CLASS); }
|
||||
{COLON_BANG} { return SIMPLE_TOKEN(COLON_BANG); }
|
||||
{COLON} { return SIMPLE_TOKEN(COLON); }
|
||||
{COMMA} { return SIMPLE_TOKEN(COMMA); }
|
||||
{CONTINUATION_TYPE} { return SIMPLE_TOKEN(CONTINUATION_TYPE); }
|
||||
{CONTINUATION} { return SIMPLE_TOKEN(CONTINUATION); }
|
||||
{CONTINUE} { return SIMPLE_TOKEN(CONTINUE); }
|
||||
{DEFAULT} { return SIMPLE_TOKEN(DEFAULT); }
|
||||
{DOUBLE_ARROW} { return SIMPLE_TOKEN(DOUBLE_ARROW); }
|
||||
{ELSE} { return SIMPLE_TOKEN(ELSE); }
|
||||
{EQUAL_EQUAL} { return SIMPLE_TOKEN(EQUAL_EQUAL); }
|
||||
{EQUAL} { return SIMPLE_TOKEN(EQUAL); }
|
||||
{FALSE} { return SIMPLE_TOKEN(FALSE); }
|
||||
{FNTY} { return SIMPLE_TOKEN(FNTY); }
|
||||
{FN} { return SIMPLE_TOKEN(FN); }
|
||||
{IF} { return SIMPLE_TOKEN(IF); }
|
||||
{LEFT_PARENTHESIS} { return SIMPLE_TOKEN(LEFT_PARENTHESIS); }
|
||||
{LEFT_CURLY_BRACE} { return SIMPLE_TOKEN(LEFT_CURLY_BRACE); }
|
||||
{LEFT_SQUARE_BRACKET} { return SIMPLE_TOKEN(LEFT_SQUARE_BRACKET); }
|
||||
{MATCH} { return SIMPLE_TOKEN(MATCH); }
|
||||
{MINUS} { return SIMPLE_TOKEN(MINUS); }
|
||||
{NOT} { return SIMPLE_TOKEN(NOT); }
|
||||
{OR} { return SIMPLE_TOKEN(OR); }
|
||||
{PERIOD} { return SIMPLE_TOKEN(PERIOD); }
|
||||
{PLUS} { return SIMPLE_TOKEN(PLUS); }
|
||||
{RETURN} { return SIMPLE_TOKEN(RETURN); }
|
||||
{RUN} { return SIMPLE_TOKEN(RUN); }
|
||||
{SEMICOLON} { return SIMPLE_TOKEN(SEMICOLON); }
|
||||
{SLASH} { return SIMPLE_TOKEN(SLASH); }
|
||||
{STRING} { return SIMPLE_TOKEN(STRING); }
|
||||
{TRUE} { return SIMPLE_TOKEN(TRUE); }
|
||||
{TYPE} { return SIMPLE_TOKEN(TYPE); }
|
||||
{UNDERSCORE} { return SIMPLE_TOKEN(UNDERSCORE); }
|
||||
{VAR} { return SIMPLE_TOKEN(VAR); }
|
||||
{WHILE} { return SIMPLE_TOKEN(WHILE); }
|
||||
{MATCH} { return SIMPLE_TOKEN(MATCH); }
|
||||
{MINUS} { return SIMPLE_TOKEN(MINUS); }
|
||||
{NOT} { return SIMPLE_TOKEN(NOT); }
|
||||
{OR} { return SIMPLE_TOKEN(OR); }
|
||||
{PERIOD} { return SIMPLE_TOKEN(PERIOD); }
|
||||
{PLUS} { return SIMPLE_TOKEN(PLUS); }
|
||||
{RETURN} { return SIMPLE_TOKEN(RETURN); }
|
||||
{RUN} { return SIMPLE_TOKEN(RUN); }
|
||||
{SEMICOLON} { return SIMPLE_TOKEN(SEMICOLON); }
|
||||
{SLASH} { return SIMPLE_TOKEN(SLASH); }
|
||||
{STRING} { return SIMPLE_TOKEN(STRING); }
|
||||
{TRUE} { return SIMPLE_TOKEN(TRUE); }
|
||||
{TYPE} { return SIMPLE_TOKEN(TYPE); }
|
||||
{UNDERSCORE} { return SIMPLE_TOKEN(UNDERSCORE); }
|
||||
{VAR} { return SIMPLE_TOKEN(VAR); }
|
||||
{WHILE} { return SIMPLE_TOKEN(WHILE); }
|
||||
/* Table end. */
|
||||
|
||||
/* More modern Bisons provide make_EOF. */
|
||||
<<EOF>> { return SIMPLE_TOKEN(END_OF_FILE); }
|
||||
@@ -203,26 +206,18 @@ string_literal \"([^\\\"\n\v\f\r]|\\.)*\"
|
||||
return SIMPLE_TOKEN(BINARY_STAR);
|
||||
}
|
||||
/* `*` operator case 2: */
|
||||
<AFTER_OPERAND>"*"/{operand_start} {
|
||||
return SIMPLE_TOKEN(BINARY_STAR);
|
||||
}
|
||||
<AFTER_OPERAND>"*"/{operand_start} { return SIMPLE_TOKEN(BINARY_STAR); }
|
||||
/* `*` operator case 3: */
|
||||
<AFTER_WHITESPACE>"*" {
|
||||
return SIMPLE_TOKEN(PREFIX_STAR);
|
||||
}
|
||||
<AFTER_WHITESPACE>"*" { return SIMPLE_TOKEN(PREFIX_STAR); }
|
||||
/* `*` operator case 4: */
|
||||
<INITIAL,AFTER_OPERAND>"*"{whitespace}+ {
|
||||
BEGIN(AFTER_WHITESPACE);
|
||||
return SIMPLE_TOKEN(POSTFIX_STAR);
|
||||
}
|
||||
/* `*` operator case 5: */
|
||||
<INITIAL,AFTER_OPERAND>"*" {
|
||||
return SIMPLE_TOKEN(UNARY_STAR);
|
||||
}
|
||||
<INITIAL,AFTER_OPERAND>"*" { return SIMPLE_TOKEN(UNARY_STAR); }
|
||||
|
||||
{sized_type_literal} {
|
||||
return ARG_TOKEN(sized_type_literal, yytext);
|
||||
}
|
||||
{sized_type_literal} { return ARG_TOKEN(sized_type_literal, yytext); }
|
||||
|
||||
{identifier} {
|
||||
BEGIN(AFTER_OPERAND);
|
||||
@@ -279,8 +274,9 @@ string_literal \"([^\\\"\n\v\f\r]|\\.)*\"
|
||||
// "Reading a token: ".
|
||||
llvm::errs() << "\n";
|
||||
}
|
||||
FATAL_COMPILATION_ERROR(context.SourceLoc()) << "invalid character '\\x"
|
||||
<< llvm::toHex(llvm::StringRef(yytext, 1)) << "' in source file.";
|
||||
FATAL_COMPILATION_ERROR(context.SourceLoc())
|
||||
<< "invalid character '\\x" << llvm::toHex(llvm::StringRef(yytext, 1))
|
||||
<< "' in source file.";
|
||||
}
|
||||
|
||||
%%
|
||||
|
||||
Reference in New Issue
Block a user