Jeremy G. Siek ac0b810bf3 Adds basic support for class functions and methods. (#1057) %!s(int64=4) %!d(string=hai) anos
..
BUILD 2017eb4da0 Initial implementation of block string literals following lexical_conventions/string_literals.md. (#1028) %!s(int64=4) %!d(string=hai) anos
README.md 6c3e1f6d7c Revise README and add subdir READMEs (#1023) %!s(int64=4) %!d(string=hai) anos
bison_wrap.h 057b9fe253 Clean up remaining executable_semantics clang-tidy warnings (#906) %!s(int64=4) %!d(string=hai) anos
format_grammar.py 2017eb4da0 Initial implementation of block string literals following lexical_conventions/string_literals.md. (#1028) %!s(int64=4) %!d(string=hai) anos
format_grammar_test.py ffc2be92d6 Add carbon to a couple python imports for correctness (#1033) %!s(int64=4) %!d(string=hai) anos
lexer.lpp 4479c55305 Pointers (#1060) %!s(int64=4) %!d(string=hai) anos
parse.cpp ec2f8e64e2 Support parsing Carbon files from strings. (#954) %!s(int64=4) %!d(string=hai) anos
parse.h ec2f8e64e2 Support parsing Carbon files from strings. (#954) %!s(int64=4) %!d(string=hai) anos
parse_and_lex_context.cpp 70797e8bf8 Mass rename SourceLoc and Tag (#860) %!s(int64=4) %!d(string=hai) anos
parse_and_lex_context.h 2017eb4da0 Initial implementation of block string literals following lexical_conventions/string_literals.md. (#1028) %!s(int64=4) %!d(string=hai) anos
parse_test.cpp eda43faa5a Note namespace and static recommendations in C++ style guide (#1041) %!s(int64=4) %!d(string=hai) anos
parse_test_matchers.h dc5e62fc7a Support parsing and testing unimplemented expressions (#957) %!s(int64=4) %!d(string=hai) anos
parse_test_matchers_internal.h 92903afbd5 clang-tidy pass on executable_semantics (#963) %!s(int64=4) %!d(string=hai) anos
parser.ypp ac0b810bf3 Adds basic support for class functions and methods. (#1057) %!s(int64=4) %!d(string=hai) anos
unimplemented_example_test.cpp eda43faa5a Note namespace and static recommendations in C++ style guide (#1041) %!s(int64=4) %!d(string=hai) anos

README.md

The code in this directory is responsible for translating Carbon source code to the AST defined in ast. It consists primarily of a Flex lexer defined in lexer.lpp and a Bison grammar defined in parser.ypp.

It is possible to define and test a new expression syntax without defining its semantics by using the UnimplementedExpression AST node type and the same techniques can be applied to other kinds of AST nodes as needed. See the handling of the UNIMPL_EXAMPLE token for an example of how this is done, and see unimplemented_example_test.cpp for an example of how to test it.