Skip to content

Commit 769d691

Browse files
committed
Squashed 'misc/packcc/' content from commit 4a7dbab6
git-subtree-dir: misc/packcc git-subtree-split: 4a7dbab60add4ed323ff7dd2caec7a1cb258b9f4
0 parents  commit 769d691

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+9853
-0
lines changed

.github/workflows/testing.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: run test cases
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
9+
jobs:
10+
testing:
11+
strategy:
12+
matrix:
13+
os: [ubuntu-16.04, ubuntu-20.04]
14+
compiler: [gcc, clang]
15+
16+
runs-on: ${{ matrix.os }}
17+
18+
env:
19+
CC: ${{ matrix.compiler }}
20+
21+
steps:
22+
- uses: actions/checkout@v2
23+
- name: install bats
24+
run: |
25+
curl -L -o bats-core-1.2.1.tar.gz https://github.com/bats-core/bats-core/archive/v1.2.1.tar.gz
26+
tar zxvf bats-core-1.2.1.tar.gz
27+
cd bats-core-1.2.1 &&
28+
sudo ./install.sh /usr/local
29+
- name: install uncrustify
30+
run: |
31+
curl -LO http://launchpadlibrarian.net/516341795/uncrustify_0.72.0+dfsg1-2_amd64.deb
32+
sudo dpkg -i uncrustify_0.72.0+dfsg1-2_amd64.deb || true
33+
- name: build packcc
34+
run: |
35+
(
36+
cd build/$CC
37+
make all check
38+
)

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
*.o
2+
*.obj
3+
/build/**/tmp/
4+
/build/**/bin/
5+
/build/msvc/**/x86/
6+
/build/msvc/**/x64/
7+
/build/msvc/**/.vs/

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
PackCC: a packrat parser generator for C.
2+
3+
Copyright (c) 2014, 2019-2021 Arihiro Yoshida. All rights reserved.
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 515 additions & 0 deletions
Large diffs are not rendered by default.

build/clang/Makefile

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
CC=clang
2+
CFLAGS_D=-std=gnu89 -Wall -Wextra -Wno-unused-parameter -Wno-overlength-strings -pedantic -O0 -g2
3+
CFLAGS_R=-std=gnu89 -Wall -Wextra -Wno-unused-parameter -Wno-overlength-strings -pedantic -O2 -DNDEBUG
4+
LDFLAGS_D=
5+
LDFLAGS_R=
6+
7+
SRCDIR=../../src
8+
TESTDIR=../../tests
9+
TMPDIR_D=debug/tmp
10+
TMPDIR_R=release/tmp
11+
BINDIR_D=debug/bin
12+
BINDIR_R=release/bin
13+
14+
EXAMPLES:=$(patsubst $(SRCDIR)/examples/%.peg,examples/%,$(wildcard $(SRCDIR)/examples/*.peg))
15+
16+
BINS= \
17+
$(BINDIR_D)/packcc \
18+
$(BINDIR_R)/packcc \
19+
$(patsubst %,$(BINDIR_D)/%,$(EXAMPLES)) \
20+
$(patsubst %,$(BINDIR_R)/%,$(EXAMPLES))
21+
SRCS= \
22+
$(patsubst %,$(TMPDIR_D)/%.c,$(EXAMPLES)) \
23+
$(patsubst %,$(TMPDIR_D)/%.h,$(EXAMPLES)) \
24+
$(patsubst %,$(TMPDIR_R)/%.c,$(EXAMPLES)) \
25+
$(patsubst %,$(TMPDIR_R)/%.h,$(EXAMPLES))
26+
27+
.PHONY: all clean
28+
29+
.SECONDARY: $(SRCS)
30+
31+
all: $(BINS)
32+
33+
$(BINDIR_D)/packcc: $(SRCDIR)/packcc.c
34+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_D) -o $@ $< $(LDFLAGS_D)
35+
36+
$(BINDIR_R)/packcc: $(SRCDIR)/packcc.c
37+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_R) -o $@ $< $(LDFLAGS_R)
38+
39+
$(BINDIR_D)/examples/%: $(TMPDIR_D)/examples/%.c $(TMPDIR_D)/examples/%.h
40+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_D) -I. -o $@ $< $(LDFLAGS_D)
41+
42+
$(BINDIR_R)/examples/%: $(TMPDIR_R)/examples/%.c $(TMPDIR_R)/examples/%.h
43+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_R) -I. -o $@ $< $(LDFLAGS_R)
44+
45+
$(TMPDIR_D)/examples/%.c $(TMPDIR_D)/examples/%.h: $(SRCDIR)/examples/%.peg $(BINDIR_D)/packcc
46+
mkdir -p $(dir $@) && $(BINDIR_D)/packcc -o $(basename $@) $<
47+
48+
$(TMPDIR_R)/examples/%.c $(TMPDIR_R)/examples/%.h: $(SRCDIR)/examples/%.peg $(BINDIR_R)/packcc
49+
mkdir -p $(dir $@) && $(BINDIR_R)/packcc -o $(basename $@) $<
50+
51+
check: $(BINDIR_R)/packcc
52+
PACKCC=$$PWD/$^ $(TESTDIR)/test.sh
53+
54+
clean:
55+
rm -f $(BINS) $(SRCS)

build/gcc/Makefile

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
CC=gcc
2+
CFLAGS_D=-std=gnu89 -Wall -Wextra -Wno-unused-parameter -Wno-overlength-strings -pedantic -O0 -g2
3+
CFLAGS_R=-std=gnu89 -Wall -Wextra -Wno-unused-parameter -Wno-overlength-strings -pedantic -O2 -DNDEBUG
4+
LDFLAGS_D=
5+
LDFLAGS_R=
6+
7+
SRCDIR=../../src
8+
TESTDIR=../../tests
9+
TMPDIR_D=debug/tmp
10+
TMPDIR_R=release/tmp
11+
BINDIR_D=debug/bin
12+
BINDIR_R=release/bin
13+
14+
EXAMPLES:=$(patsubst $(SRCDIR)/examples/%.peg,examples/%,$(wildcard $(SRCDIR)/examples/*.peg))
15+
16+
BINS= \
17+
$(BINDIR_D)/packcc \
18+
$(BINDIR_R)/packcc \
19+
$(patsubst %,$(BINDIR_D)/%,$(EXAMPLES)) \
20+
$(patsubst %,$(BINDIR_R)/%,$(EXAMPLES))
21+
SRCS= \
22+
$(patsubst %,$(TMPDIR_D)/%.c,$(EXAMPLES)) \
23+
$(patsubst %,$(TMPDIR_D)/%.h,$(EXAMPLES)) \
24+
$(patsubst %,$(TMPDIR_R)/%.c,$(EXAMPLES)) \
25+
$(patsubst %,$(TMPDIR_R)/%.h,$(EXAMPLES))
26+
27+
.PHONY: all clean
28+
29+
.SECONDARY: $(SRCS)
30+
31+
all: $(BINS)
32+
33+
$(BINDIR_D)/packcc: $(SRCDIR)/packcc.c
34+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_D) -o $@ $< $(LDFLAGS_D)
35+
36+
$(BINDIR_R)/packcc: $(SRCDIR)/packcc.c
37+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_R) -o $@ $< $(LDFLAGS_R)
38+
39+
$(BINDIR_D)/examples/%: $(TMPDIR_D)/examples/%.c $(TMPDIR_D)/examples/%.h
40+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_D) -I. -o $@ $< $(LDFLAGS_D)
41+
42+
$(BINDIR_R)/examples/%: $(TMPDIR_R)/examples/%.c $(TMPDIR_R)/examples/%.h
43+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_R) -I. -o $@ $< $(LDFLAGS_R)
44+
45+
$(TMPDIR_D)/examples/%.c $(TMPDIR_D)/examples/%.h: $(SRCDIR)/examples/%.peg $(BINDIR_D)/packcc
46+
mkdir -p $(dir $@) && $(BINDIR_D)/packcc -o $(basename $@) $<
47+
48+
$(TMPDIR_R)/examples/%.c $(TMPDIR_R)/examples/%.h: $(SRCDIR)/examples/%.peg $(BINDIR_R)/packcc
49+
mkdir -p $(dir $@) && $(BINDIR_R)/packcc -o $(basename $@) $<
50+
51+
check: $(BINDIR_R)/packcc
52+
PACKCC=$$PWD/$^ $(TESTDIR)/test.sh
53+
54+
clean:
55+
rm -f $(BINS) $(SRCS)

build/mingw-clang/Makefile

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
CC=clang
2+
CFLAGS_D=-std=gnu89 -Wall -Wextra -Wno-unused-parameter -Wno-overlength-strings -Wno-long-long -Wno-format -pedantic -O0 -g2
3+
CFLAGS_R=-std=gnu89 -Wall -Wextra -Wno-unused-parameter -Wno-overlength-strings -Wno-long-long -Wno-format -pedantic -O2 -DNDEBUG
4+
LDFLAGS_D=
5+
LDFLAGS_R=
6+
7+
SRCDIR=../../src
8+
TESTDIR=../../tests
9+
TMPDIR_D=debug/tmp
10+
TMPDIR_R=release/tmp
11+
BINDIR_D=debug/bin
12+
BINDIR_R=release/bin
13+
14+
EXAMPLES:=$(patsubst $(SRCDIR)/examples/%.peg,examples/%,$(wildcard $(SRCDIR)/examples/*.peg))
15+
16+
BINS= \
17+
$(BINDIR_D)/packcc \
18+
$(BINDIR_R)/packcc \
19+
$(patsubst %,$(BINDIR_D)/%,$(EXAMPLES)) \
20+
$(patsubst %,$(BINDIR_R)/%,$(EXAMPLES))
21+
SRCS= \
22+
$(patsubst %,$(TMPDIR_D)/%.c,$(EXAMPLES)) \
23+
$(patsubst %,$(TMPDIR_D)/%.h,$(EXAMPLES)) \
24+
$(patsubst %,$(TMPDIR_R)/%.c,$(EXAMPLES)) \
25+
$(patsubst %,$(TMPDIR_R)/%.h,$(EXAMPLES))
26+
27+
.PHONY: all clean
28+
29+
.SECONDARY: $(SRCS)
30+
31+
all: $(BINS)
32+
33+
$(BINDIR_D)/packcc: $(SRCDIR)/packcc.c
34+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_D) -o $@ $< $(LDFLAGS_D)
35+
36+
$(BINDIR_R)/packcc: $(SRCDIR)/packcc.c
37+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_R) -o $@ $< $(LDFLAGS_R)
38+
39+
$(BINDIR_D)/examples/%: $(TMPDIR_D)/examples/%.c $(TMPDIR_D)/examples/%.h
40+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_D) -I. -o $@ $< $(LDFLAGS_D)
41+
42+
$(BINDIR_R)/examples/%: $(TMPDIR_R)/examples/%.c $(TMPDIR_R)/examples/%.h
43+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_R) -I. -o $@ $< $(LDFLAGS_R)
44+
45+
$(TMPDIR_D)/examples/%.c $(TMPDIR_D)/examples/%.h: $(SRCDIR)/examples/%.peg $(BINDIR_D)/packcc
46+
mkdir -p $(dir $@) && $(BINDIR_D)/packcc -o $(basename $@) $<
47+
48+
$(TMPDIR_R)/examples/%.c $(TMPDIR_R)/examples/%.h: $(SRCDIR)/examples/%.peg $(BINDIR_R)/packcc
49+
mkdir -p $(dir $@) && $(BINDIR_R)/packcc -o $(basename $@) $<
50+
51+
check: $(BINDIR_R)/packcc
52+
PACKCC=$$PWD/$^ $(TESTDIR)/test.sh
53+
54+
clean:
55+
rm -f $(BINS) $(SRCS)

build/mingw-gcc/Makefile

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
CC=gcc
2+
CFLAGS_D=-std=gnu89 -Wall -Wextra -Wno-unused-parameter -Wno-overlength-strings -Wno-long-long -Wno-format -pedantic -O0 -g2
3+
CFLAGS_R=-std=gnu89 -Wall -Wextra -Wno-unused-parameter -Wno-overlength-strings -Wno-long-long -Wno-format -pedantic -O2 -DNDEBUG
4+
LDFLAGS_D=
5+
LDFLAGS_R=
6+
7+
SRCDIR=../../src
8+
TESTDIR=../../tests
9+
TMPDIR_D=debug/tmp
10+
TMPDIR_R=release/tmp
11+
BINDIR_D=debug/bin
12+
BINDIR_R=release/bin
13+
14+
EXAMPLES:=$(patsubst $(SRCDIR)/examples/%.peg,examples/%,$(wildcard $(SRCDIR)/examples/*.peg))
15+
16+
BINS= \
17+
$(BINDIR_D)/packcc \
18+
$(BINDIR_R)/packcc \
19+
$(patsubst %,$(BINDIR_D)/%,$(EXAMPLES)) \
20+
$(patsubst %,$(BINDIR_R)/%,$(EXAMPLES))
21+
SRCS= \
22+
$(patsubst %,$(TMPDIR_D)/%.c,$(EXAMPLES)) \
23+
$(patsubst %,$(TMPDIR_D)/%.h,$(EXAMPLES)) \
24+
$(patsubst %,$(TMPDIR_R)/%.c,$(EXAMPLES)) \
25+
$(patsubst %,$(TMPDIR_R)/%.h,$(EXAMPLES))
26+
27+
.PHONY: all clean
28+
29+
.SECONDARY: $(SRCS)
30+
31+
all: $(BINS)
32+
33+
$(BINDIR_D)/packcc: $(SRCDIR)/packcc.c
34+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_D) -o $@ $< $(LDFLAGS_D)
35+
36+
$(BINDIR_R)/packcc: $(SRCDIR)/packcc.c
37+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_R) -o $@ $< $(LDFLAGS_R)
38+
39+
$(BINDIR_D)/examples/%: $(TMPDIR_D)/examples/%.c $(TMPDIR_D)/examples/%.h
40+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_D) -I. -o $@ $< $(LDFLAGS_D)
41+
42+
$(BINDIR_R)/examples/%: $(TMPDIR_R)/examples/%.c $(TMPDIR_R)/examples/%.h
43+
mkdir -p $(dir $@) && $(CC) $(CFLAGS_R) -I. -o $@ $< $(LDFLAGS_R)
44+
45+
$(TMPDIR_D)/examples/%.c $(TMPDIR_D)/examples/%.h: $(SRCDIR)/examples/%.peg $(BINDIR_D)/packcc
46+
mkdir -p $(dir $@) && $(BINDIR_D)/packcc -o $(basename $@) $<
47+
48+
$(TMPDIR_R)/examples/%.c $(TMPDIR_R)/examples/%.h: $(SRCDIR)/examples/%.peg $(BINDIR_R)/packcc
49+
mkdir -p $(dir $@) && $(BINDIR_R)/packcc -o $(basename $@) $<
50+
51+
check: $(BINDIR_R)/packcc
52+
PACKCC=$$PWD/$^ $(TESTDIR)/test.sh
53+
54+
clean:
55+
rm -f $(BINS) $(SRCS)

0 commit comments

Comments
 (0)