aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
AgeCommit message (Collapse)Author
2019-10-08generated docs: error sets in fn docsAndrew Kelley
2019-10-07generated docs: show doc comments on functionsAndrew Kelley
2019-10-06stage1 parser supports doc commentsAndrew Kelley
2019-09-05implement `noasync` function callsAndrew Kelley
See #3157
2019-09-05Add the noinline keyword for function declarationsLemonBoy
2019-08-30support recursive async and non-async functionsAndrew Kelley
which heap allocate their own frames related: #1006
2019-08-22parsing of align(N) on struct fieldsTetralux
2019-08-16implement new async syntax in self-hosted compilerVexu
2019-08-15remove `cancel`Andrew Kelley
2019-07-26add the `anyframe` and `anyframe->T` typesAndrew Kelley
2019-07-19remove coroutines implementation and promise typeAndrew Kelley
2019-07-19fix usingnamespaceAndrew Kelley
It used to be that usingnamespace was only allowed at top level. This made it OK to put the state inside the AST node data structure. However, now usingnamespace can occur inside any aggregate data structure, and therefore the state must be in the TopLevelDeclaration rather than in the AST node. There were two other problems with the usingnamespace implementation: * It was passing the wrong destination ScopeDecl, so it could cause an incorrect error such as "import of file outside package path". * When doing `usingnamespace` on a file that already had `pub usingnamespace` in it would "steal" the usingnamespace, causing incorrect "use of undeclared identifier" errors in the target file. closes #2632 closes #2580
2019-07-16rename internal names regarding `usingnamespace`Andrew Kelley
2019-07-06Make anyerror not a keywordhryx
2019-06-11Merge remote-tracking branch 'origin/master' into copy-elision-3Andrew Kelley
2019-06-10whitespace cleanupAndrew Kelley
2019-06-10Add check for null body in if, for and whileSamTebbs33
2019-06-09Merge remote-tracking branch 'origin/master' into copy-elision-3Andrew Kelley
2019-06-09different array literal syntax when inferring the sizeAndrew Kelley
old syntax: []i32{1, 2, 3} new syntax: [_]i32{1, 2, 3} closes #1797
2019-06-08hook up result locs for `try`Andrew Kelley
2019-05-29change `use` to `usingnamespace`Andrew Kelley
See #2014 `use` syntax is still accepted for now. `zig fmt` automatically updates code. After a release cycle the old syntax will be removed.
2019-05-11fixes #2235Jimmi Holst Christensen
2019-05-11Fixed parser for extern threadlocal variablesJimmi Holst Christensen
2019-05-10Fixes and simplifications for stage 1 parserJimmi HC
2019-04-22Allow tag expr for enum but not structhryx
2019-03-25implement allowzero pointer attributeAndrew Kelley
closes #1953 only needed for freestanding targets. also adds safety for `@intToPtr` when the address is zero.
2019-03-24introduce the enum literal typeAndrew Kelley
see #683
2019-03-20add docs for assembly and fix global assembly parsingAndrew Kelley
Previously, global assembly was parsed expecting it to have the template syntax. However global assembly has no inputs, outputs, or clobbers, and thus does not have template syntax. This is now fixed. This commit also adds a compile error for using volatile on global assembly, since it is meaningless. closes #1515
2019-03-19Updated parser to newest grammarJimmi Holst Christensen
2019-02-28remove namespace type; files are empty structsAndrew Kelley
closes #1047
2019-02-17Deduplicate compile log statement warningsMatthew McAllister
2019-02-10langref: update grammar with c pointersAndrew Kelley
See #1059
2019-02-10added C pointer type and implicit int-to-ptr for this typeAndrew Kelley
See #1059
2019-02-06thread local storage working for linux x86_64Andrew Kelley
2019-01-29backport copy elision changesAndrew Kelley
This commit contains everything from the copy-elision-2 branch that does not have to do with copy elision directly, but is generally useful for master branch. * All const values know their parents, when applicable, not just structs and unions. * Null pointers in const values are represented explicitly, rather than as a HardCodedAddr value of 0. * Rename "maybe" to "optional" in various code locations. * Separate DeclVarSrc and DeclVarGen * Separate PtrCastSrc and PtrCastGen * Separate CmpxchgSrc and CmpxchgGen * Represent optional error set as an integer, using the 0 value. In a const value, it uses nullptr. * Introduce type_has_one_possible_value and use it where applicable. * Fix debug builds not setting memory to 0xaa when storing undefined. * Separate the type of a variable from the const value of a variable. * Use copy_const_val where appropriate. * Rearrange structs to pack data more efficiently. * Move test/cases/* to test/behavior/* * Use `std.debug.assertOrPanic` in behavior tests instead of `std.debug.assert`. * Fix outdated slice syntax in docs.
2019-01-29simpler implementation of `&&` and `||` hintsAndrew Kelley
This accomplishes the same goal, but with less changes, so that I can backport copy elision stuff easier.
2019-01-25Hint at use of and/or when &&/|| is improperly used (#1886)kristopher tate
2018-11-17Updated comments in parser.cppJimmi HC
2018-11-17rename `section` keyword to `linksection`Andrew Kelley
add zig fmt support for this syntax closes #1152
2018-11-13Fixed error where we didn't expect the return type of a functionJimmi Holst Christensen
2018-11-13New Zig formal grammar (#1685)Jimmi Holst Christensen
Reverted #1628 and changed the grammar+parser of the language to not allow certain expr where types are expected
2018-10-15Solve the return type ambiguity (#1628)Jimmi Holst Christensen
Changed container and initializer syntax * <container> { ... } -> <container> . { ... } * <exrp> { ... } -> <expr> . { ...}
2018-09-26the last number in a packed ptr is host int bytesAndrew Kelley
See #1121
2018-09-13remove `this`. add `@This()`.Andrew Kelley
closes #1283
2018-08-02pull request fixupsAndrew Kelley
* clean up parser code * fix stage2 parse and render code * remove redundant test * make stage1 compile tests leaner
2018-08-02src/parser.cpp: fix typo from rebase;kristopher tate
2018-08-02src/parser.cpp: remove promise_symbol from suspend;kristopher tate
Tracking Issue #1296 ;
2018-07-27remove ability to break from suspend blocksAndrew Kelley
closes #803
2018-06-10breaking syntax change: orelse keyword instead of ?? (#1096)Andrew Kelley
use the `zig-fmt-optional-default` branch to have zig fmt automatically do the changes. closes #1023
2018-06-09breaking syntax change: ??x to x.? (#1095)Andrew Kelley
See #1023 This also renames Nullable/Maybe to Optional