converted build toolchain to CMake

This commit is contained in:
Justin J. Meza 2011-12-31 20:53:54 -08:00
parent 3c89ae1c95
commit 0ec7a7f583
379 changed files with 1316 additions and 210 deletions

59
CMakeLists.txt Normal file
View File

@ -0,0 +1,59 @@
cmake_minimum_required(VERSION 2.8)
project(lci)
ENABLE_TESTING()
SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake )
SET(PERFORM_MEM_TESTS FALSE CACHE BOOL "Whether or not to enable memory testing")
MARK_AS_ADVANCED(PERFORM_MEM_TESTS)
IF(${PERFORM_MEM_TESTS})
find_program(VALGRIND valgrind)
IF(NOT VALGRIND)
message(FATAL_ERROR
"
Error: You've enabled memory testing but we can't find valgrind
Try one of the following:
1: Make sure valgrind is in your PATH
2: Install valgrind if you already haven't
3: Disable memory testing
")
ENDIF(NOT VALGRIND)
ENDIF(${PERFORM_MEM_TESTS})
SET(HDRS
interpreter.h
lexer.h
parser.h
tokenizer.h
unicode.h
)
SET(SRCS
interpreter.c
lexer.c
main.c
parser.c
tokenizer.c
unicode.c
)
add_executable(lci ${SRCS} ${HDRS})
target_link_libraries(lci m)
add_subdirectory(test)
install(
TARGETS lci
RUNTIME DESTINATION bin
)
find_package(Doxygen)
if(DOXYGEN_FOUND)
add_custom_target(docs
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen" VERBATIM
)
else(DOXYGEN_FOUND)
message(WARNING
"Couldn't find doxygen. You won't be able to generate documentation now")
endif(DOXYGEN_FOUND)

View File

@ -1,50 +0,0 @@
TARGET = lci
LIBS = -lm
OBJS = lexer.o tokenizer.o parser.o interpreter.o unicode.o main.o
SRCS = lexer.c tokenizer.c parser.c interpreter.c unicode.c main.c
HDRS = lexer.h tokenizer.h parser.h interpreter.h unicode.h
INSTALL = /usr/local/bin/install -c
CPPFLAGS = -O3
LINT = splint -nullret -temptrans -compdestroy -usereleased -compdef -compmempass -mustfreefresh -boolops -predboolint -nullpass -nullderef +boolint -predboolothers -uniondef -unqualifiedtrans -nullstate -bufferoverflowhigh -branchstate -mustfreeonly -nullassign -shiftimplementation -exportlocal
prefix = /usr/local
bindir = $(prefix)/bin
testdir = ./test
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CPPFLAGS) -o $(TARGET) $(OBJS) $(LIBS)
pedantic: $(OBJS)
$(CC) -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wundef -Wall -ansi -pedantic -o $(TARGET) $(SRCS) $(HDRS) $(LIBS)
lint: all
$(LINT) $(SRCS)
debug: $(OBJS)
$(CC) -g -o $(TARGET) $(SRCS) $(LIBS)
check: all
@cd $(testdir) && ./testDir.sh -q ../$(TARGET) 1.3-Tests
check-mem: all
@echo "This will take a long time! Be patient!"
@cd $(testdir) && ./testDir.sh -q -m ../$(TARGET) 1.3-Tests
install: all
$(INSTALL) $(TARGET) $(bindir)/$(TARGET)
TAGS: $(SRCS) $(HDRS)
ctags $(SRCS) $(HDRS)
docs: Doxyfile $(SRCS)
doxygen
clean:
-rm -f $(OBJS)
-rm -f $(TARGET)
distclean: clean
-rm -f tags
-rm -rf html

93
README
View File

@ -2,7 +2,7 @@
LICENSE
Copyright (C) 2010-2011 Justin J. Meza
Copyright (C) 2010-2012 Justin J. Meza
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -39,19 +39,90 @@ http://github.com/justinmeza/lci/issues.
Created and maintained by Justin J. Meza <justin.meza@gmail.com>.
INSTALLATION
PREREQUISITES
To install lci, you should be able to
1. You must have CMake installed (www.cmake.org).
a) If you're using a Linux distro with package managment CMake should be in
your repositories.
$ make && make check
2. Python 2.7+ or Python 2.x with the argparse module installed.
and, assuming no errors are encountered (if there are, please let us know at
http://groups.google.com/group/lci-general) go ahead and run (with administrator
privileges)
INSTALLATION: THE EASY WAY ON LINUX OR MAC OSX
# make install
1. run the script install.py. Note that
Optionally, you may want to make documentation for lci. This requires the
doxygen program. To do so, do
$ ./install.py -h
$ make docs
will display a list of relavent install options. For
example, if I wanted to install lci to the directory
"/home/kurtis/opt" I would run:
$ ./install.py --prefix="/home/kurtis/opt"
INSTALLATION: THE MORE INVOLVED WAY ON LINUX OR MAC OSX
1. Configure lci using CMake. This can be as simple as opening up the terminal,
navigating to the directory containing lci and typing:
$ cmake .
You can also provide any other argument to the CMake configuration process
you'd like. To enable Memory testing turn the PERFORM_MEM_TESTS option on
like so:
$ cmake -DPERFORM_MEM_TESTS:BOOL=ON .
You can also use the "ccmake" command or the CMake GUI if you prefer.
See the cmake documentation for more details.
2. Build the project:
$ make
3. Install
$ make install
4. (Optional) Build documentation:
$ make doc
5. (Optional) Run tests:
$ ctest
INSTALLATION ON WINDOWS
(Note that the instructions were written from the point of view of Windows 7,
but in practice, any modern version will work.)
1. Add MinGW and Python to your PATH.
- Start > right-click Computer > Properties > Advanced system settings
> Environment Variables....
- Select the "PATH" variable and click "Edit...".
- Add ";C:\MinGW\bin;C:\Python32" to the end.
3. Open an Administrator shell
- Start > All Programs > Accessories > right-click Command Prompt
> Run as administrator.
4. Navigate to the project directory using the "cd" command, for example,
> cd C:\Users\%user%\Documents\lci
5. run the script install.py. Note that
> install.py -h
will display a list of relavent install options. For
example, if I wanted to install lci to the directory
"C:\Program Files\lci" I would run:
> install.py --prefix="C:/Program Files/lci"
(notice that forward slashes are used to separate directories.)

99
install.py Normal file
View File

@ -0,0 +1,99 @@
#!/usr/bin/python
import subprocess
import argparse
import sys
import os
#Checks if a string is a positive integer
def positiveInt(string):
value = int(string)
if not value >= 1:
msg = string + " is not a positive integer"
raise argparse.ArgumentTypeError(msg)
return value
"""
Runs a subprocess using the command parameter.
Before running the command it displays a message
that contains the provided description and where
the output will be sent. If an error occurs,
the errorMsg is displayed.
"""
def runSubProc(command, description, errorMsg, output):
msg = description
msg += "and writing results to " + output +"."
print(msg + "\n")
outputFile = open(output, "w")
if os.name == "nt":
proc = subprocess.Popen(command, stdout=outputFile, stderr=subprocess.STDOUT, shell=True)
else:
proc = subprocess.Popen(command, stdout=outputFile, stderr=subprocess.STDOUT)
proc.wait()
if proc.returncode != 0:
print("Error installing: " + errorMsg)
sys.exit(1)
#Remove the CMakeCache.txt so we can garuntee a fresh configure
if os.path.exists("CMakeCache.txt"):
os.remove("CMakeCache.txt")
parser = argparse.ArgumentParser(description="Installation script for lci")
parser.add_argument('-p', '--prefix', default=None, help="Installation prefix")
parser.add_argument('-m', '--enableMemCheck', action="store_true", help="Enable memory testing")
parser.add_argument('-d', '--buildDocs', action="store_true", help="Build documentation")
parser.add_argument('-t', '--runTests', action="store_true", help="Run Tests")
parser.add_argument('-j', metavar="NumProcs", type=positiveInt, default=1, help="Number of processes for make to use and (if enabled) how many processes CTest should use.")
args = parser.parse_args()
j = str(args.j)
cmakeCommand = ["cmake"]
makeCommand = "make"
# Support for Windows
if os.name == "nt":
cmakeCommand.append("-G \"MinGW Makefiles\"")
makeCommand = "mingw32-make"
if args.prefix != None:
cmakeCommand.append("-DCMAKE_INSTALL_PREFIX:STRING=\""+args.prefix+"\"")
if args.enableMemCheck:
cmakeCommand.append("-DPERFORM_MEM_TESTS:BOOL=ON")
cmakeCommand.append(".")
# Windows does weird things if this is not joined...
cmakeCommand = " ".join(cmakeCommand)
runSubProc(
cmakeCommand,
"Running cmake with command: \n\"" + cmakeCommand + "\"\n",
"There was a CMake error",
"configure.out")
runSubProc(
[makeCommand, "-j"+j],
"Running make ",
"There was a make error",
"make.out")
if args.buildDocs:
runSubProc(
[makeCommand, "-j"+j, "docs"],
"Building documentation ",
"There was a documentation building error",
"docs.out")
runSubProc(
[makeCommand, "install"],
"Installing ",
"There was an installation error",
"install.out")
if args.runTests:
runSubProc(
["ctest", "-j"+j],
"Testing ",
"There was a testing error",
"test.out")

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(1-EmptyMainBlock OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(10-CommasSeparate OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(11-EllipsesJoinLF OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(12-EllipsesJoinCR OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(13-EllipsesJoinCRLF OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(14-NoNewlineAfterJoinLF OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(15-NoNewlineAfterJoinCR OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(16-NoNewlineAfterJoinCRLF OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(17-Includes OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(2-MustBeginWithHAI OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(3-MustIncludeVersion OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(4-MustEndWithKTHXBYE OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(5-IndentationIgnored OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(6-WhitespaceBetweenTokens OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(7-NewlineLF OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(8-NewlineCR OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(9-NewlineCRLF OUTPUT test.out)

View File

@ -0,0 +1,17 @@
add_subdirectory(1-EmptyMainBlock)
add_subdirectory(10-CommasSeparate)
add_subdirectory(11-EllipsesJoinLF)
add_subdirectory(12-EllipsesJoinCR)
add_subdirectory(13-EllipsesJoinCRLF)
add_subdirectory(14-NoNewlineAfterJoinLF)
add_subdirectory(15-NoNewlineAfterJoinCR)
add_subdirectory(16-NoNewlineAfterJoinCRLF)
add_subdirectory(17-Includes)
add_subdirectory(2-MustBeginWithHAI)
add_subdirectory(3-MustIncludeVersion)
add_subdirectory(4-MustEndWithKTHXBYE)
add_subdirectory(5-IndentationIgnored)
add_subdirectory(6-WhitespaceBetweenTokens)
add_subdirectory(7-NewlineLF)
add_subdirectory(8-NewlineCR)
add_subdirectory(9-NewlineCRLF)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(1-Breaks OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(2-Increment OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(3-Decrement OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(4-Until OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(5-While OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(6-UnaryFunction OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(7-EmptyBody OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(8-UntilMustIncludeVar OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(9-WhileMustIncludeVar OUTPUT test.out)

View File

@ -0,0 +1,9 @@
add_subdirectory(1-Breaks)
add_subdirectory(2-Increment)
add_subdirectory(3-Decrement)
add_subdirectory(4-Until)
add_subdirectory(5-While)
add_subdirectory(6-UnaryFunction)
add_subdirectory(7-EmptyBody)
add_subdirectory(8-UntilMustIncludeVar)
add_subdirectory(9-WhileMustIncludeVar)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(1-EllipsesJoinLF OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(2-EllipsesJoinCR OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(3-EllipsesJoinCRLF OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(4-Strings OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(5-CodePointInString OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(6-NormativeNameInString OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(7-InvalidCodePointInString OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(8-InvalidNormativeName OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(9-ByteOrderMark OUTPUT test.out)

View File

@ -0,0 +1,9 @@
add_subdirectory(1-EllipsesJoinLF)
add_subdirectory(2-EllipsesJoinCR)
add_subdirectory(3-EllipsesJoinCRLF)
add_subdirectory(4-Strings)
add_subdirectory(5-CodePointInString)
add_subdirectory(6-NormativeNameInString)
add_subdirectory(7-InvalidCodePointInString)
add_subdirectory(8-InvalidNormativeName)
add_subdirectory(9-ByteOrderMark)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(1-EmptyArray OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(10-CallingObjectInitialization OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(11-AlternateSyntax OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(1-Declaration OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(2-Assignment OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(3-AlternateSyntax OUTPUT test.out)

View File

@ -0,0 +1,3 @@
add_subdirectory(1-Declaration)
add_subdirectory(2-Assignment)
add_subdirectory(3-AlternateSyntax)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(2-SlotCreation OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(3-SlotInitialization OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(4-SlotAssignment OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(5-FunctionStorage OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(6-FunctionDeclaration OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(7-CallingObjectReference OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(8-CallingObjectAssignment OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(9-CallingObjectDeclaration OUTPUT test.out)

View File

@ -0,0 +1,12 @@
add_subdirectory(1-EmptyArray)
add_subdirectory(10-CallingObjectInitialization)
add_subdirectory(11-AlternateSyntax)
add_subdirectory(12-Inheritance)
add_subdirectory(2-SlotCreation)
add_subdirectory(3-SlotInitialization)
add_subdirectory(4-SlotAssignment)
add_subdirectory(5-FunctionStorage)
add_subdirectory(6-FunctionDeclaration)
add_subdirectory(7-CallingObjectReference)
add_subdirectory(8-CallingObjectAssignment)
add_subdirectory(9-CallingObjectDeclaration)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(1-EndOfLine OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(2-SeparateLine OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(3-AfterCommaSeparator OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(4-BeforeHAI OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(5-AfterKTHXBYE OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(6-IgnoreContinuation OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(7-IgnoreJoin OUTPUT test.out)

View File

@ -0,0 +1,7 @@
add_subdirectory(1-EndOfLine)
add_subdirectory(2-SeparateLine)
add_subdirectory(3-AfterCommaSeparator)
add_subdirectory(4-BeforeHAI)
add_subdirectory(5-AfterKTHXBYE)
add_subdirectory(6-IgnoreContinuation)
add_subdirectory(7-IgnoreJoin)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(1-SeparateStartEndLines OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(10-AfterKTHXBYE OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(2-SeparateStartLineOnly OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(3-SeparateEndLineOnly OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(4-MustStartOnSeparateLine OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(5-MustEndOnOwnLine OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(6-BeginAfterLineSeparator OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(7-EndBeforeLineSeparator OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(8-IgnoreEmbeddedBTW OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(9-BeforeHAI OUTPUT test.out)

View File

@ -0,0 +1,10 @@
add_subdirectory(1-SeparateStartEndLines)
add_subdirectory(10-AfterKTHXBYE)
add_subdirectory(2-SeparateStartLineOnly)
add_subdirectory(3-SeparateEndLineOnly)
add_subdirectory(4-MustStartOnSeparateLine)
add_subdirectory(5-MustEndOnOwnLine)
add_subdirectory(6-BeginAfterLineSeparator)
add_subdirectory(7-EndBeforeLineSeparator)
add_subdirectory(8-IgnoreEmbeddedBTW)
add_subdirectory(9-BeforeHAI)

View File

@ -0,0 +1,2 @@
add_subdirectory(1-SingleLine)
add_subdirectory(2-MultipleLine)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(1-NilToBoolean OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(2-NilToInteger OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(3-NilToFloat OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(4-NilToString OUTPUT test.out)

View File

@ -0,0 +1,4 @@
add_subdirectory(1-NilToBoolean)
add_subdirectory(2-NilToInteger)
add_subdirectory(3-NilToFloat)
add_subdirectory(4-NilToString)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(1-BooleanImplicitCasts OUTPUT test.out)

View File

@ -0,0 +1 @@
add_subdirectory(1-BooleanImplicitCasts)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(1-NegativeValue OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(2-MustHaveAdjacentHyphen OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(3-ImplicitCasts OUTPUT test.out)

View File

@ -0,0 +1,3 @@
add_subdirectory(1-NegativeValue)
add_subdirectory(2-MustHaveAdjacentHyphen)
add_subdirectory(3-ImplicitCasts)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(1-OnlyOneDecimalPoint OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(2-MustHaveAdjacentHyphen OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(3-ImplicitCasts OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(4-Truncation OUTPUT test.out)

View File

@ -0,0 +1,4 @@
add_subdirectory(1-OnlyOneDecimalPoint)
add_subdirectory(2-MustHaveAdjacentHyphen)
add_subdirectory(3-ImplicitCasts)
add_subdirectory(4-Truncation)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(1-Newline OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(2-Tab OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(3-Bell OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(4-DoubleQuote OUTPUT test.out)

View File

@ -0,0 +1,2 @@
INCLUDE(AddLolTest)
ADD_LOL_TEST(5-Colon OUTPUT test.out)

View File

@ -0,0 +1,5 @@
add_subdirectory(1-Newline)
add_subdirectory(2-Tab)
add_subdirectory(3-Bell)
add_subdirectory(4-DoubleQuote)
add_subdirectory(5-Colon)

Some files were not shown because too many files have changed in this diff Show More