aboutsummaryrefslogtreecommitdiff
path: root/unit-tests/cc/lexer
diff options
context:
space:
mode:
Diffstat (limited to 'unit-tests/cc/lexer')
-rw-r--r--unit-tests/cc/lexer/buildfile6
-rw-r--r--unit-tests/cc/lexer/char-literal.testscript67
-rw-r--r--unit-tests/cc/lexer/comment.testscript88
-rw-r--r--unit-tests/cc/lexer/driver.cxx80
-rw-r--r--unit-tests/cc/lexer/line.testscript67
-rw-r--r--unit-tests/cc/lexer/number.testscript48
-rw-r--r--unit-tests/cc/lexer/preprocessor.testscript73
-rw-r--r--unit-tests/cc/lexer/raw-string-literal.testscript90
-rw-r--r--unit-tests/cc/lexer/string-literal.testscript65
9 files changed, 0 insertions, 584 deletions
diff --git a/unit-tests/cc/lexer/buildfile b/unit-tests/cc/lexer/buildfile
deleted file mode 100644
index 4eaef44..0000000
--- a/unit-tests/cc/lexer/buildfile
+++ /dev/null
@@ -1,6 +0,0 @@
-# file : unit-tests/cc/lexer/buildfile
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-include ../../../build2/
-exe{driver}: {hxx cxx}{*} ../../../build2/libue{b} testscript{*}
diff --git a/unit-tests/cc/lexer/char-literal.testscript b/unit-tests/cc/lexer/char-literal.testscript
deleted file mode 100644
index cbcb462..0000000
--- a/unit-tests/cc/lexer/char-literal.testscript
+++ /dev/null
@@ -1,67 +0,0 @@
-# file : unit-tests/cc/lexer/char-literal.testscript
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-# Test character literals.
-#
-
-: normal
-:
-$* <<EOI >>EOO
-'a'
-'aa'
-'"'
-EOI
-<char literal>
-<char literal>
-<char literal>
-EOO
-
-: prefix
-:
-$* <<EOI >>EOO
-L'a'
-U'a'
-u'a'
-u8'a'
-u8R'a'
-EOI
-<char literal>
-<char literal>
-<char literal>
-<char literal>
-'u8R'
-<char literal>
-EOO
-
-: suffix
-:
-$* <<EOI >>EOO
-'a'x
-'a'_X123
-EOI
-<char literal>
-<char literal>
-EOO
-
-: escape
-:
-$* <<EOI >>EOO
-'\''
-'\\'
-'\\\''
-'\n'
-U'\U0001f34c'
-EOI
-<char literal>
-<char literal>
-<char literal>
-<char literal>
-<char literal>
-EOO
-
-: unterminated
-:
-$* <"'a" 2>>EOE != 0
-stdin:1:1: error: unterminated character literal
-EOE
diff --git a/unit-tests/cc/lexer/comment.testscript b/unit-tests/cc/lexer/comment.testscript
deleted file mode 100644
index 347c2e7..0000000
--- a/unit-tests/cc/lexer/comment.testscript
+++ /dev/null
@@ -1,88 +0,0 @@
-# file : unit-tests/cc/lexer/comment.testscript
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-# Test C and C++ comments.
-#
-
-: c-comment
-:
-$* <<EOI
-/* 'one' */
-/* "two" // three
-*/
-/**
-four
-// five */
-/**
-six /*
-*/
-EOI
-
-: cxx-comment
-:
-$* <<EOI
-// 'one'
-// "two" // three
-// four /* five */
-EOI
-
-: commented-out
-:
-$* <<EOI >"';'"
-// /*
-;
-// */
-EOI
-
-: c-unterminated
-:
-$* <<EOI 2>>EOE != 0
-/*
-comment
-EOI
-stdin:1:2: error: unterminated comment
-EOE
-
-: cxx-unterminated
-:
-$* <<:EOI
-// comment
-EOI
-
-: in-char-literal
-:
-$* <<EOI >>EOO
-'//'
-'/*'*/
-EOI
-<char literal>
-<char literal>
-<punctuation>
-<punctuation>
-EOO
-
-: in-string-literal
-:
-$* <<EOI >>EOO
-"//foo"
-"/*"*/
-EOI
-<string literal>
-<string literal>
-<punctuation>
-<punctuation>
-EOO
-
-: in-raw-string-literal
-:
-$* <<EOI >>EOO
-R"X(
-// foo
-/* bar
-)X"*/
-EOI
-<string literal>
-<punctuation>
-<punctuation>
-EOO
diff --git a/unit-tests/cc/lexer/driver.cxx b/unit-tests/cc/lexer/driver.cxx
deleted file mode 100644
index ebbb9ab..0000000
--- a/unit-tests/cc/lexer/driver.cxx
+++ /dev/null
@@ -1,80 +0,0 @@
-// file : unit-tests/cc/lexer/driver.cxx -*- C++ -*-
-// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-// license : MIT; see accompanying LICENSE file
-
-#include <cassert>
-#include <iostream>
-
-#include <build2/types.hxx>
-#include <build2/utility.hxx>
-
-#include <build2/cc/lexer.hxx>
-
-using namespace std;
-using namespace butl;
-
-namespace build2
-{
- namespace cc
- {
- // Usage: argv[0] [-l] [<file>]
- //
- int
- main (int argc, char* argv[])
- {
- bool loc (false);
- const char* file (nullptr);
-
- for (int i (1); i != argc; ++i)
- {
- string a (argv[i]);
-
- if (a == "-l")
- loc = true;
- else
- {
- file = argv[i];
- break;
- }
- }
-
- try
- {
- ifdstream is;
- if (file != nullptr)
- is.open (file);
- else
- {
- file = "stdin";
- is.open (fddup (stdin_fd ()));
- }
-
- lexer l (is, path (file));
-
- // No use printing eos since we will either get it or loop forever.
- //
- for (token t; l.next (t) != token_type::eos; )
- {
- cout << t;
-
- if (loc)
- cout << ' ' << t.file << ':' << t.line << ':' << t.column;
-
- cout << endl;
- }
- }
- catch (const failed&)
- {
- return 1;
- }
-
- return 0;
- }
- }
-}
-
-int
-main (int argc, char* argv[])
-{
- return build2::cc::main (argc, argv);
-}
diff --git a/unit-tests/cc/lexer/line.testscript b/unit-tests/cc/lexer/line.testscript
deleted file mode 100644
index 9dcd7e3..0000000
--- a/unit-tests/cc/lexer/line.testscript
+++ /dev/null
@@ -1,67 +0,0 @@
-# file : unit-tests/cc/lexer/line.testscript
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-# Test line continuations.
-#
-
-: identifier
-:
-$* <<EOI >"'foo123'"
-fo\
-o\
-1\
-2\
-3
-EOI
-
-: punctuation
-:
-$* <<EOI >'<punctuation>'
-.\
-.\
-.
-EOI
-
-: c-comment
-:
-$* <<EOI
-/\
-*
-comment
-*\
-/\
-
-EOI
-
-: cxx-comment
-:
-$* <<EOI
-/\
-/ comment\
-more\
-more
-EOI
-
-: other
-:
-$* <<EOI >>EOO
-\abc
-EOI
-<punctuation>
-'abc'
-EOO
-
-: multiple
-:
-$* <<EOI >>EOO
-\\
-EOI
-<punctuation>
-EOO
-
-: unterminated
-:
-$* <<:EOI >'<punctuation>'
-\
-EOI
diff --git a/unit-tests/cc/lexer/number.testscript b/unit-tests/cc/lexer/number.testscript
deleted file mode 100644
index 0b4c888..0000000
--- a/unit-tests/cc/lexer/number.testscript
+++ /dev/null
@@ -1,48 +0,0 @@
-# file : unit-tests/cc/lexer/number.testscript
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-# Test numbers.
-#
-
-$* <'1' >'<number literal>'
-$* <'.1' >'<number literal>'
-$* <'1.' >'<number literal>'
-
-$* <'0b101' >'<number literal>'
-$* <'0123' >'<number literal>'
-$* <'0X12AB' >'<number literal>'
-
-$* <'1e10' >'<number literal>'
-$* <'1E+10' >'<number literal>'
-$* <'0x1.p10' >'<number literal>'
-$* <'0x1.P-10' >'<number literal>'
-
-$* <"123'456" >'<number literal>'
-$* <"0xff00'00ff" >'<number literal>'
-
-$* <'123f' >'<number literal>'
-$* <'123UL' >'<number literal>'
-$* <'123_X' >'<number literal>'
-
-: separate-punctuation
-:
-$* <'123;' >>EOO
-<number literal>
-';'
-EOO
-
-: separate-plus-minus
-:
-$* <'1.0_a+2.0' >>EOO
-<number literal>
-<punctuation>
-<number literal>
-EOO
-
-: separate-whitespace
-:
-$* <'123 abc' >>EOO
-<number literal>
-'abc'
-EOO
diff --git a/unit-tests/cc/lexer/preprocessor.testscript b/unit-tests/cc/lexer/preprocessor.testscript
deleted file mode 100644
index e826144..0000000
--- a/unit-tests/cc/lexer/preprocessor.testscript
+++ /dev/null
@@ -1,73 +0,0 @@
-# file : unit-tests/cc/lexer/preprocessor.testscript
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-# Test preprocessor lines.
-#
-
-: normal
-:
-$* <<EOI
-#pragma message("abc")
-EOI
-
-: multiline
-:
-$* <<EOI
-#pragma message \
-( \
-"abc" \
-)
-EOI
-
-: comment
-:
-$* <<EOI
-#pragma foo /*
-bar
-baz
-*/
-#pragma foo // bar baz
-EOI
-
-: line
-:
-$* -l <<EOI >>EOO
-;
-# 1 "test.cxx" 2
-;
- ;
-# 4
-;
-#line 8 "z:\\tmp\\test.hxx"
-;
-#line 10
-;
-# 5 "test.cxx"
-;
-EOI
-';' stdin:1:1
-';' test.cxx:1:1
-';' test.cxx:2:3
-';' test.cxx:4:1
-';' z:\tmp\test.hxx:8:1
-';' z:\tmp\test.hxx:10:1
-';' test.cxx:5:1
-EOO
-
-: include
-:
-$* <<EOI 2>>EOE != 0
-#include <foo/bar>
-EOI
-stdin:1:1: error: unexpected #include directive
-EOE
-
-: nested
-:
-$* <<EOI >>EOO
-#define FOO(x) #y
-;
-EOI
-';'
-EOO
diff --git a/unit-tests/cc/lexer/raw-string-literal.testscript b/unit-tests/cc/lexer/raw-string-literal.testscript
deleted file mode 100644
index 4ab08f7..0000000
--- a/unit-tests/cc/lexer/raw-string-literal.testscript
+++ /dev/null
@@ -1,90 +0,0 @@
-# file : unit-tests/cc/lexer/raw-string-literal.testscript
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-# Test raw string literals.
-#
-
-: normal
-:
-$* <<EOI >>EOO
-R"()"
-R"(ab)"
-R"(a"b)"
-R"(a)b)"
-R"%(a%)b)%"
-R"X(a
- b)X"
-R"X(a\
- b)X"
-EOI
-<string literal>
-<string literal>
-<string literal>
-<string literal>
-<string literal>
-<string literal>
-<string literal>
-EOO
-
-: prefix
-:
-$* <<EOI >>EOO
-LR"(ab)"
-UR"(ab)"
-uR"(ab)"
-u8R"(ab)"
-EOI
-<string literal>
-<string literal>
-<string literal>
-<string literal>
-EOO
-
-: suffix
-:
-$* <<EOI >>EOO
-R"(ab)"x
-R"(ab)"_X123
-EOI
-<string literal>
-<string literal>
-EOO
-
-: escape
-:
-$* <<EOI >>EOO
-R"(\)"
-EOI
-<string literal>
-EOO
-
-: invalid-no-paren
-:
-$* <'R"a"' 2>>EOE != 0
-stdin:1:2: error: invalid raw string literal
-EOE
-
-: invalid-paren
-:
-$* <'R")()("' 2>>EOE != 0
-stdin:1:2: error: invalid raw string literal
-EOE
-
-: invalid-unterminated-paren
-:
-$* <'R"(abc"' 2>>EOE != 0
-stdin:1:2: error: invalid raw string literal
-EOE
-
-: invalid-unterminated-delimiter
-:
-$* <'R"X(abc)"' 2>>EOE != 0
-stdin:1:2: error: invalid raw string literal
-EOE
-
-: invalid-unterminated-quote
-:
-$* <'R"X(abc)X' 2>>EOE != 0
-stdin:1:2: error: invalid raw string literal
-EOE
diff --git a/unit-tests/cc/lexer/string-literal.testscript b/unit-tests/cc/lexer/string-literal.testscript
deleted file mode 100644
index db3798f..0000000
--- a/unit-tests/cc/lexer/string-literal.testscript
+++ /dev/null
@@ -1,65 +0,0 @@
-# file : unit-tests/cc/lexer/string-literal.testscript
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-# Test string literals (except raw).
-#
-
-: normal
-:
-$* <<EOI >>EOO
-"aa"
-"'"
-"a""b"
-EOI
-<string literal>
-<string literal>
-<string literal>
-<string literal>
-EOO
-
-: prefix
-:
-$* <<EOI >>EOO
-L"ab"
-U"ab"
-u"ab"
-u8"ab"
-EOI
-<string literal>
-<string literal>
-<string literal>
-<string literal>
-EOO
-
-: suffix
-:
-$* <<EOI >>EOO
-"ab"x
-"ab"_X123
-EOI
-<string literal>
-<string literal>
-EOO
-
-: escape
-:
-$* <<EOI >>EOO
-"\"\""
-"\\\\"
-"\\\"\\"
-"\n\t"
-U"a\U0001f34c"
-EOI
-<string literal>
-<string literal>
-<string literal>
-<string literal>
-<string literal>
-EOO
-
-: unterminated
-:
-$* <'"ab' 2>>EOE != 0
-stdin:1:1: error: unterminated string literal
-EOE