From 1fa0cabf9dd0c2016a60c23bb616f0f39daf1dfd Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 27 Jul 2016 23:26:12 -0700 Subject: [PATCH] remove multiline comments closes #161 --- doc/vim/syntax/zig.vim | 17 ++---- src/tokenizer.cpp | 57 -------------------- std/compiler_rt.zig | 120 +++++++++++++++++++---------------------- std/hash_map.zig | 8 +-- std/linux.zig | 42 +++++++-------- std/net.zig | 40 +++++++------- test/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 index e14b6364e1..17a034c50d 100644 --- 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 index 99850c1414..52a815f950 100644 --- 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 index a2feee3ea3..a5d3ca39a6 100644 --- 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 index 191d44eab4..a42a7839cd 100644 --- 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 index 69f204f13c..4c1417f6fd 100644 --- 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 index c367e207f8..2055f0a68a 100644 --- 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 index 294887f00c..bb2eec814a 100644 --- 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")