zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 1fa0cabf9dd0c2016a60c23bb616f0f39daf1dfd (tree)
parent 8552d7fd19836f3350b7303f9bd897708b966805
Author: Andrew Kelley <superjoe30@gmail.com>
Date:   Wed, 27 Jul 2016 23:26:12 -0700

remove multiline comments

closes #161

Diffstat:
Mdoc/vim/syntax/zig.vim | 17+++++------------
Msrc/tokenizer.cpp | 57---------------------------------------------------------
Mstd/compiler_rt.zig | 120++++++++++++++++++++++++++++++++++++-------------------------------------------
Mstd/hash_map.zig | 8++++----
Mstd/linux.zig | 42+++++++++++++++++++++---------------------
Mstd/net.zig | 40++++++++++++++++++++--------------------
Mtest/self_hosted.zig | 15++-------------
7 files changed, 106 insertions(+), 193 deletions(-)

diff --git a/doc/vim/syntax/zig.vim b/doc/vim/syntax/zig.vim @@ -1,28 +1,27 @@ " Vim syntax file " Language: Zig " Maintainer: Andrew Kelley -" Latest Revision: 02 December 2015 +" Latest Revision: 28 July 2016 if exists("b:current_syntax") finish endif -syn keyword zigStorage const var extern volatile export pub noalias inline +syn keyword zigStorage const var extern export pub noalias inline noinline syn keyword zigStructure struct enum union syn keyword zigStatement goto break return continue asm defer syn keyword zigConditional if else switch syn keyword zigRepeat while for -syn keyword zigConstant null undefined +syn keyword zigConstant null undefined zeroes syn keyword zigKeyword fn use syn keyword zigType bool f32 f64 void unreachable type error syn keyword zigType i8 u8 i16 u16 i32 u32 i64 u64 isize usize -syn keyword zigType c_short c_ushort c_int c_uint c_long c_ulong c_longlong c_ulonglong +syn keyword zigType c_short c_ushort c_int c_uint c_long c_ulong c_longlong c_ulonglong c_long_double syn keyword zigBoolean true false -syn match zigOperator display "\%(+\|-\|/\|*\|=\|\^\|&\|?\||\|!\|>\|<\|%\)=\?" -syn match zigOperator display "&&\|||" +syn match zigOperator display "\%(+%\?\|-%\?\|/\|*%\?\|=\|\^\|&\|?\||\|!\|>\|<\|%\|<<%\?\|>>\|&&\|||\)=\?" syn match zigArrowCharacter display "->" syn match zigDecNumber display "\<[0-9][0-9_]*\%([iu]\%(size\|8\|16\|32\|64\)\)\=" @@ -40,10 +39,6 @@ syn match zigShebang /\%^#![^[].*/ syn region zigCommentLine start="//" end="$" contains=zigTodo,@Spell syn region zigCommentLineDoc start="//\%(//\@!\|!\)" end="$" contains=zigTodo,@Spell -syn region zigCommentBlock matchgroup=zigCommentBlock start="/\*\%(!\|\*[*/]\@!\)\@!" end="\*/" contains=zigTodo,zigCommentBlockNest,@Spell -syn region zigCommentBlockDoc matchgroup=zigCommentBlockDoc start="/\*\%(!\|\*[*/]\@!\)" end="\*/" contains=zigTodo,zigCommentBlockDocNest,@Spell -syn region zigCommentBlockNest matchgroup=zigCommentBlock start="/\*" end="\*/" contains=zigTodo,zigCommentBlockNest,@Spell contained transparent -syn region zigCommentBlockDocNest matchgroup=zigCommentBlockDoc start="/\*" end="\*/" contains=zigTodo,zigCommentBlockDocNest,@Spell contained transparent syn keyword zigTodo contained TODO XXX @@ -67,8 +62,6 @@ hi def link zigType Type hi def link zigShebang Comment hi def link zigCommentLine Comment hi def link zigCommentLineDoc SpecialComment -hi def link zigCommentBlock zigCommentLine -hi def link zigCommentBlockDoc zigCommentLineDoc hi def link zigTodo Todo hi def link zigStringContinuation Special hi def link zigString String diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp @@ -167,9 +167,6 @@ enum TokenizeState { TokenizeStateSawPipe, TokenizeStateSawPipePipe, TokenizeStateLineComment, - TokenizeStateMultiLineComment, - TokenizeStateMultiLineCommentSlash, - TokenizeStateMultiLineCommentStar, TokenizeStateSawEq, TokenizeStateSawBang, TokenizeStateSawLessThan, @@ -194,7 +191,6 @@ struct Tokenize { int line; int column; Token *cur_tok; - int multi_line_comment_count; Tokenization *out; int raw_string_id_start; int raw_string_id_end; @@ -840,11 +836,6 @@ void tokenize(Buf *buf, Tokenization *out) { cancel_token(&t); t.state = TokenizeStateLineComment; break; - case '*': - cancel_token(&t); - t.state = TokenizeStateMultiLineComment; - t.multi_line_comment_count = 1; - break; case '=': t.cur_tok->id = TokenIdDivEq; end_token(&t); @@ -867,49 +858,6 @@ void tokenize(Buf *buf, Tokenization *out) { break; } break; - case TokenizeStateMultiLineComment: - switch (c) { - case '*': - t.state = TokenizeStateMultiLineCommentStar; - break; - case '/': - t.state = TokenizeStateMultiLineCommentSlash; - break; - default: - // do nothing - break; - } - break; - case TokenizeStateMultiLineCommentSlash: - switch (c) { - case '*': - t.state = TokenizeStateMultiLineComment; - t.multi_line_comment_count += 1; - break; - case '/': - break; - default: - t.state = TokenizeStateMultiLineComment; - break; - } - break; - case TokenizeStateMultiLineCommentStar: - switch (c) { - case '/': - t.multi_line_comment_count -= 1; - if (t.multi_line_comment_count == 0) { - t.state = TokenizeStateStart; - } else { - t.state = TokenizeStateMultiLineComment; - } - break; - case '*': - break; - default: - t.state = TokenizeStateMultiLineComment; - break; - } - break; case TokenizeStateSymbolFirst: switch (c) { case '"': @@ -1339,11 +1287,6 @@ void tokenize(Buf *buf, Tokenization *out) { break; case TokenizeStateLineComment: break; - case TokenizeStateMultiLineComment: - case TokenizeStateMultiLineCommentSlash: - case TokenizeStateMultiLineCommentStar: - tokenize_error(&t, "unterminated multi-line comment"); - break; } if (t.state != TokenizeStateError) { if (t.tokens->length > 0) { diff --git a/std/compiler_rt.zig b/std/compiler_rt.zig @@ -27,45 +27,41 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int { var q: udwords = undefined; var r: udwords = undefined; var sr: c_uint = undefined; - /* special cases, X is unknown, K != 0 */ + // special cases, X is unknown, K != 0 if (n[high] == 0) { if (d[high] == 0) { - /* 0 X - * --- - * 0 X - */ + // 0 X + // --- + // 0 X if (const rem ?= maybe_rem) { *rem = n[low] % d[low]; } return n[low] / d[low]; } - /* 0 X - * --- - * K X - */ + // 0 X + // --- + // K X if (const rem ?= maybe_rem) { *rem = n[low]; } return 0; } - /* n[high] != 0 */ + // n[high] != 0 if (d[low] == 0) { if (d[high] == 0) { - /* K X - * --- - * 0 0 - */ + // K X + // --- + // 0 0 if (var rem ?= maybe_rem) { *rem = n[high] % d[low]; } return n[high] / d[low]; } - /* d[high] != 0 */ + // d[high] != 0 if (n[low] == 0) { - /* K 0 - * --- - * K 0 - */ + // K 0 + // --- + // K 0 if (var rem ?= maybe_rem) { r[high] = n[high] % d[high]; r[low] = 0; @@ -73,10 +69,9 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int { } return n[high] / d[high]; } - /* K K - * --- - * K 0 - */ + // K K + // --- + // K 0 // if d is a power of 2 if ((d[high] & (d[high] - 1)) == 0) { if (var rem ?= maybe_rem) { @@ -86,12 +81,11 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int { } return n[high] >> @ctz(@typeof(d[high]), d[high]); } - /* K K - * --- - * K 0 - */ + // K K + // --- + // K 0 sr = @clz(su_int, d[high]) - @clz(su_int, n[high]); - /* 0 <= sr <= n_uword_bits - 2 or sr large */ + // 0 <= sr <= n_uword_bits - 2 or sr large if (sr > n_uword_bits - 2) { if (var rem ?= maybe_rem) { *rem = *(&du_int)(&n[0]); @@ -99,21 +93,20 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int { return 0; } sr += 1; - /* 1 <= sr <= n_uword_bits - 1 */ - /* q.all = n.all << (n_udword_bits - sr); */ + // 1 <= sr <= n_uword_bits - 1 + // q.all = n.all << (n_udword_bits - sr); q[low] = 0; q[high] = n[low] << (n_uword_bits - sr); - /* r.all = n.all >> sr; */ + // r.all = n.all >> sr; r[high] = n[high] >> sr; r[low] = (n[high] << (n_uword_bits - sr)) | (n[low] >> sr); } else { - /* d[low] != 0 */ + // d[low] != 0 if (d[high] == 0) { - /* K X - * --- - * 0 K - */ - /* if d is a power of 2 */ + // K X + // --- + // 0 K + // if d is a power of 2 if ((d[low] & (d[low] - 1)) == 0) { if (var rem ?= maybe_rem) { *rem = n[low] & (d[low] - 1); @@ -126,15 +119,13 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int { q[low] = (n[high] << (n_uword_bits - sr)) | (n[low] >> sr); return *(&du_int)(&q[0]); } - /* K X - * --- - * 0 K - */ + // K X + // --- + // 0 K sr = 1 + n_uword_bits + @clz(su_int, d[low]) - @clz(su_int, n[high]); - /* 2 <= sr <= n_udword_bits - 1 - * q.all = n.all << (n_udword_bits - sr); - * r.all = n.all >> sr; - */ + // 2 <= sr <= n_udword_bits - 1 + // q.all = n.all << (n_udword_bits - sr); + // r.all = n.all >> sr; if (sr == n_uword_bits) { q[low] = 0; q[high] = n[low]; @@ -155,12 +146,11 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int { r[low] = n[high] >> (sr - n_uword_bits); } } else { - /* K X - * --- - * K K - */ + // K X + // --- + // K K sr = @clz(su_int, d[high]) - @clz(su_int, n[high]); - /* 0 <= sr <= n_uword_bits - 1 or sr large */ + // 0 <= sr <= n_uword_bits - 1 or sr large if (sr > n_uword_bits - 1) { if (var rem ?= maybe_rem) { *rem = *(&du_int)(&n[0]); @@ -168,8 +158,8 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int { return 0; } sr += 1; - /* 1 <= sr <= n_uword_bits */ - /* q.all = n.all << (n_udword_bits - sr); */ + // 1 <= sr <= n_uword_bits + // q.all = n.all << (n_udword_bits - sr); q[low] = 0; if (sr == n_uword_bits) { q[high] = n[low]; @@ -182,26 +172,24 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int { } } } - /* Not a special case - * q and r are initialized with: - * q.all = n.all << (n_udword_bits - sr); - * r.all = n.all >> sr; - * 1 <= sr <= n_udword_bits - 1 - */ + // Not a special case + // q and r are initialized with: + // q.all = n.all << (n_udword_bits - sr); + // r.all = n.all >> sr; + // 1 <= sr <= n_udword_bits - 1 var carry: su_int = 0; while (sr > 0) { - /* r:q = ((r:q) << 1) | carry */ + // r:q = ((r:q) << 1) | carry r[high] = (r[high] << 1) | (r[low] >> (n_uword_bits - 1)); r[low] = (r[low] << 1) | (q[high] >> (n_uword_bits - 1)); q[high] = (q[high] << 1) | (q[low] >> (n_uword_bits - 1)); q[low] = (q[low] << 1) | carry; - /* carry = 0; - * if (r.all >= d.all) - * { - * r.all -= d.all; - * carry = 1; - * } - */ + // carry = 0; + // if (r.all >= d.all) + // { + // r.all -= d.all; + // carry = 1; + // } const s: di_int = (di_int)(*(&du_int)(&d[0]) - *(&du_int)(&r[0]) - 1) >> (n_udword_bits - 1); carry = su_int(s & 1); *(&du_int)(&r[0]) -= *(&du_int)(&d[0]) & u64(s); diff --git a/std/hash_map.zig b/std/hash_map.zig @@ -6,11 +6,11 @@ const Allocator = mem.Allocator; const want_modification_safety = !@compile_var("is_release"); const debug_u32 = if (want_modification_safety) u32 else void; -/* -pub inline fn HashMap(inline K: type, inline V: type, inline hash: fn(key: K)->u32, inline eql: fn(a: K, b: K)->bool) { - SmallHashMap(K, V, hash, eql, 8); +pub inline fn HashMap(inline K: type, inline V: type, + inline hash: fn(key: K)->u32, inline eql: fn(a: K, b: K)->bool) +{ + SmallHashMap(K, V, hash, eql, 8) } -*/ pub struct SmallHashMap(K: type, V: type, hash: fn(key: K)->u32, eql: fn(a: K, b: K)->bool, STATIC_SIZE: usize) { entries: []Entry, diff --git a/std/linux.zig b/std/linux.zig @@ -342,27 +342,27 @@ export struct iovec { iov_len: usize, } -/* -const IF_NAMESIZE = 16; - -export struct ifreq { - ifrn_name: [IF_NAMESIZE]u8, - union { - ifru_addr: sockaddr, - ifru_dstaddr: sockaddr, - ifru_broadaddr: sockaddr, - ifru_netmask: sockaddr, - ifru_hwaddr: sockaddr, - ifru_flags: i16, - ifru_ivalue: i32, - ifru_mtu: i32, - ifru_map: ifmap, - ifru_slave: [IF_NAMESIZE]u8, - ifru_newname: [IF_NAMESIZE]u8, - ifru_data: &u8, - } ifr_ifru; -} -*/ +// +//const IF_NAMESIZE = 16; +// +//export struct ifreq { +// ifrn_name: [IF_NAMESIZE]u8, +// union { +// ifru_addr: sockaddr, +// ifru_dstaddr: sockaddr, +// ifru_broadaddr: sockaddr, +// ifru_netmask: sockaddr, +// ifru_hwaddr: sockaddr, +// ifru_flags: i16, +// ifru_ivalue: i32, +// ifru_mtu: i32, +// ifru_map: ifmap, +// ifru_slave: [IF_NAMESIZE]u8, +// ifru_newname: [IF_NAMESIZE]u8, +// ifru_data: &u8, +// } ifr_ifru; +//} +// pub fn getsockname(fd: i32, noalias addr: &sockaddr, noalias len: &socklen_t) -> usize { arch.syscall3(arch.SYS_getsockname, usize(fd), usize(addr), usize(len)) diff --git a/std/net.zig b/std/net.zig @@ -67,12 +67,12 @@ struct Address { pub fn lookup(hostname: []const u8, out_addrs: []Address) -> %[]Address { if (hostname.len == 0) { -/* - if (family != AF_INET6) - buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } }; - if (family != AF_INET) - buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } }; - */ +// +// if (family != AF_INET6) +// buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } }; +// if (family != AF_INET) +// buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } }; +// unreachable{} // TODO } @@ -248,20 +248,20 @@ fn parse_ip6(buf: []const u8) -> %Address { return error.Incomplete; } - /* - if (p) { - if (isdigit(*++p)) scopeid = strtoull(p, &z, 10); - else z = p-1; - if (*z) { - if (!IN6_IS_ADDR_LINKLOCAL(&a6) && - !IN6_IS_ADDR_MC_LINKLOCAL(&a6)) - return EAI_NONAME; - scopeid = if_nametoindex(p); - if (!scopeid) return EAI_NONAME; - } - if (scopeid > UINT_MAX) return EAI_NONAME; - } - */ +// +// if (p) { +// if (isdigit(*++p)) scopeid = strtoull(p, &z, 10); +// else z = p-1; +// if (*z) { +// if (!IN6_IS_ADDR_LINKLOCAL(&a6) && +// !IN6_IS_ADDR_MC_LINKLOCAL(&a6)) +// return EAI_NONAME; +// scopeid = if_nametoindex(p); +// if (!scopeid) return EAI_NONAME; +// } +// if (scopeid > UINT_MAX) return EAI_NONAME; +// } +// if (scope_id) { return result; diff --git a/test/self_hosted.zig b/test/self_hosted.zig @@ -4,22 +4,11 @@ const str = std.str; const cstr = std.cstr; const other = @import("other.zig"); -#attribute("test") -fn empty_function() {} - - - -/** - * multi line doc comment - */ +// normal comment /// this is a documentation comment /// doc comment line 2 #attribute("test") -fn comments() { - comments_f1(/* mid-line comment /* nested */ */ "OK\n"); -} - -fn comments_f1(s: []u8) {} +fn empty_function_with_comments() {} #attribute("test")