Skip to content

Commit

Permalink
Merge pull request #356 from bmstu-iu9/vladisp-generic-match
Browse files Browse the repository at this point in the history
Vladisp Специализация без шаблона (#251, #322)
  • Loading branch information
Mazdaywik authored Jun 26, 2021
2 parents 5b42278 + baca017 commit d13a3c9
Show file tree
Hide file tree
Showing 19 changed files with 3,713 additions and 987 deletions.
16 changes: 14 additions & 2 deletions .github/workflows/CI-posix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
strategy:
matrix:

os: [ubuntu-latest, macos-latest, windows-latest]
ccomp: [gcc, clang]
os: [ ubuntu-latest, macos-latest, windows-latest ]
ccomp: [ gcc, clang ]
exclude:
# clang отсутствует на сервере сборки для Windows
- os: windows-latest
Expand All @@ -33,3 +33,15 @@ jobs:
cp .github/workflows/conf-template-${{ matrix.ccomp }}.bash c-plus-plus.conf.sh
./bootstrap.sh
shell: bash

- uses: actions/upload-artifact@v2
if: failure()
with:
name: log-info-posix
path: |
autotests/__error.txt
autotests/__dump.txt
autotests/__log.txt
bin
src
retention-days: 5
12 changes: 12 additions & 0 deletions .github/workflows/CI-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,15 @@ jobs:
copy .github\workflows\conf-template-${{ matrix.ccomp }}.bat c-plus-plus.conf.bat
bootstrap.bat
shell: cmd

- uses: actions/upload-artifact@v2
if: failure()
with:
name: log-info-windows
path: |
autotests\__error.txt
autotests\__dump.txt
autotests\__log.txt
bin
src
retention-days: 5
2 changes: 1 addition & 1 deletion autotests/@refal-5-lambda-diagnostics.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
memory-limit = 10000000
memory-limit = 20000000
step-limit = 1000000000
idents-limit = 5000
enable-debugger = false
16 changes: 16 additions & 0 deletions autotests/opt-tree-spec10.ref
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
* TREE

$ENTRY Go {
= <F ('A')>
}

F {
t.X = <Eq (t.X) t.X>
}

$SPEC Eq e.arg;

Eq {
t.Eq t.Eq = True;
t._ t._ = False;
}
15 changes: 15 additions & 0 deletions autotests/opt-tree-spec11.ref
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
* TREE

$ENTRY Go {
= <F 1 '@' 2 '#' 3>
}

F {
e.X = <G (e.X) '+' (e.X)>
}

$SPEC G e.arg;

G {
(e.A '@' e.B) s.R (e.C '#' e.D) = (e.A) s.R (e.B) s.R (e.C) s.R (e.D);
}
30 changes: 30 additions & 0 deletions autotests/opt-tree-spec12.ref
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
* TREE

$ENTRY Go {
/* empty */
= <F () ('AABBAACC' 9 'DD')> : ('AA') ('BB') ('CC') ('DD')
= <F ('A') ('ABBAACC' 9 'DD')> : ('AA') ('BB') ('CC') ('DD')
= <F ('AA') ('BBAACC' 9 'DD')> : ('AA') ('BB') ('CC') ('DD')
= <F ('AAB') ('BAACC' 9 'DD')> : ('AA') ('BB') ('CC') ('DD')
= <F ('AABB') ('AACC' 9 'DD')> : ('AA') ('BB') ('CC') ('DD')
= <F ('AABBA') ('ACC' 9 'DD')> : ('AA') ('BB') ('CC') ('DD')
= <F ('AABBAA') ('CC' 9 'DD')> : ('AA') ('BB') ('CC') ('DD')
= <F ('AABBAAC') ('C' 9 'DD')> : ('AA') ('BB') ('CC') ('DD')
= <F ('AABBAACC') (9 'DD')> : ('AA') ('BB') ('CC') ('DD')
= <F ('AABBAACC' 9) ('DD')> : ('AA') ('BB') ('CC') ('DD')
= <F ('AABBAACC' 9 'D') ('D')> : ('AA') ('BB') ('CC') ('DD')
= <F ('AABBAACC' 9 'DD') ()> : ('AA') ('BB') ('CC') ('DD')
= /* empty */;
}

F {
(e.1) (e.2) = <S e.1 e.2>;
}

$SPEC S e.arg;

S {
e.A e.B e.A e.C 9 e.D
, e.A : s._ s._
= (e.A) (e.B) (e.C) (e.D);
}
16 changes: 16 additions & 0 deletions autotests/opt-tree-spec13.ref
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
* TREE

$ENTRY Go {
= <F (A 1) (B 1)>
}

F {
(e.A) (e.B) = <S (e.B) (e.A) (e.B)>
}

$SPEC S e.arg;

S {
(e.Z) (e.1 A s.X e.2) (e.3 B s.X e.4)
= e.Z s.X;
}
12 changes: 12 additions & 0 deletions autotests/opt-tree-spec7.ref
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
* TREE

$ENTRY Go {
e.X = <S { = e.X }> : False = /* empty */;
}

$SPEC S s.X;

S {
s.X, A : s.X = True;
s._ = False;
}
15 changes: 15 additions & 0 deletions autotests/opt-tree-spec8.ref
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
* TREE

$SPEC Rot e.dyn;

Rot {
e.1 s.2 = s.2 e.1;
}

Example {
(e.X) (e.Y) = <Rot 'A' e.X e.Y>;
}

$ENTRY Go {
= <Example (1 'a' 2) (3 'b' 4)>;
}
12 changes: 12 additions & 0 deletions autotests/opt-tree-spec9.ref
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
* TREE

$ENTRY Go {
e.X = <Eq (A e.X) (e.X A)>;
}

$SPEC Eq e.arg;

Eq {
t.X t.X = True t.X;
t.Y t.Z = False t.Y t.Z;
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
memory-limit = 10000000
step-limit = 100000000
memory-limit = 20000000
step-limit = 1000000000
idents-limit = 5000
enable-debugger = false
Loading

0 comments on commit d13a3c9

Please sign in to comment.