Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
ea122ad
A folder with 3 example added: current AST produced by superP4 + the …
fattaholmanan May 20, 2021
b084524
update in the ast
fattaholmanan May 20, 2021
0e4f4ff
(Batch-push) merging algo does not produce duplicate lists
kaarthikalagappan Sep 26, 2021
3b363a3
making start production complete
kaarthikalagappan Sep 26, 2021
e23e639
adding new ast test cases
kaarthikalagappan Sep 26, 2021
87f96f3
pushing call graph generator algo and parser change
kaarthikalagappan Nov 16, 2021
52caf7a
making it all dynamic dispatch + cleaning visitcontrolDeclaration
kaarthikalagappan Nov 16, 2021
94d9a49
removing constant values in favor for global objects
kaarthikalagappan Nov 16, 2021
7fc1460
removing unnecessary visitcontrolLocalDeclaration
kaarthikalagappan Nov 20, 2021
ce075c7
separating out checking whether symbol exists and making symtab look …
kaarthikalagappan Nov 20, 2021
cc749d9
custom toString, equals, and hashCode for languageObject and modified…
kaarthikalagappan Nov 20, 2021
b2035f2
Commenting out code to do type checking, only builds definitions
kaarthikalagappan Nov 20, 2021
2738852
separating out definition parsing and call graph generation
kaarthikalagappan Nov 22, 2021
c5c5aee
a completed example with no undefined states
kaarthikalagappan Nov 22, 2021
d963533
support for table declarations and action calls
kaarthikalagappan Nov 22, 2021
492ea1e
new test files
kaarthikalagappan Nov 22, 2021
a42cb04
new todo comments
kaarthikalagappan Nov 25, 2021
98faea9
separating actionList into two constructs
kaarthikalagappan Nov 25, 2021
79f6ba4
separating assignment and method call && lvalues + lvalue support in …
kaarthikalagappan Nov 25, 2021
cd16e4f
Adding support for invoking expressions
kaarthikalagappan Nov 25, 2021
893cd1f
reverting a parser change that caused errors
kaarthikalagappan Nov 26, 2021
922dced
fixed an assumption where dot_name can be for method call lvalues
kaarthikalagappan Nov 26, 2021
2f6f810
seprating externfunction + respective call graph changes + handling c…
kaarthikalagappan Nov 26, 2021
808adac
cleaning up
kaarthikalagappan Nov 29, 2021
6b59145
adding comments
kaarthikalagappan Nov 29, 2021
7a540cd
Changing certain test cases now call graph generator can support them
kaarthikalagappan Nov 29, 2021
7818bb1
separating call graph obj + support for extern functions
kaarthikalagappan Nov 29, 2021
0bace4d
changed dot graph generator to differentiate
kaarthikalagappan Dec 11, 2021
86a6219
changing to correct package
kaarthikalagappan Dec 11, 2021
73bda3a
moving LanguageObject to another file
kaarthikalagappan Dec 11, 2021
01124c1
Adding ObjectOfLanguage - a verbose version of LanguageObject
kaarthikalagappan Dec 12, 2021
7cbea94
adding starting comments + merging prefixedTypeName with typename
kaarthikalagappan Dec 12, 2021
d5ad6e4
separating out invking nonBraceExpressions like in expresions
kaarthikalagappan Dec 13, 2021
dfa9994
more construct support in ObjectOfLanguage
kaarthikalagappan Dec 13, 2021
c921fdb
updating annotation grammar to latest spec
kaarthikalagappan Dec 19, 2021
9c1148b
All necessary grammar constructs ObjectOfLanguage classes added
kaarthikalagappan Dec 21, 2021
cfb3371
separating out instantiation to specify ones with assignment
kaarthikalagappan Dec 21, 2021
0aa4419
Created most AST nodes into a class
kaarthikalagappan Dec 21, 2021
a85c7fb
retaining only type construct classes + couple of helper classes
kaarthikalagappan Dec 22, 2021
ff4806f
Adding initial support to use new Language Object in CallGraphGenerat…
kaarthikalagappan Jan 5, 2022
9eb3c86
CallGraphGenerator.java now uses new LanguageObject implementation. L…
kaarthikalagappan Jan 6, 2022
4e2c41a
supports new language constructs and namespacing
kaarthikalagappan Jan 25, 2022
90fb6ca
pushing minor changes + function union support for overriding
kaarthikalagappan Feb 1, 2022
437165e
Updating files - after fixing some bugs and reworking algorithms.
kaarthikalagappan Feb 15, 2022
46498f6
Pushing changes that outputs macro dependencies
kaarthikalagappan Feb 15, 2022
e4cab9b
Fixing bug that added variable as callee when return type was generic
kaarthikalagappan Feb 16, 2022
b9f621c
Fixing bug (generic-struct.p4 test case). Deals with namespacing when…
kaarthikalagappan Feb 17, 2022
32ea241
Grammar modification based on lang specification
kaarthikalagappan Feb 17, 2022
42d4a50
(Not fully tested) storing parsed type parameters on node & specializ…
kaarthikalagappan Feb 17, 2022
d5bd3a0
Adding support for function declaration object
kaarthikalagappan Feb 28, 2022
b61a997
updating test cases
kaarthikalagappan Mar 6, 2022
14eff62
Support for Generator Constructs for Constructs with Generic Types
kaarthikalagappan Mar 6, 2022
540d139
Cleaning up preprocessor macro mapping algorithm
kaarthikalagappan Mar 10, 2022
2456764
Cleaning up print statements for macro dependency output
kaarthikalagappan Mar 10, 2022
4ad621a
Fixing bug with checking if type parameters exist + cleaning up imports
kaarthikalagappan Mar 11, 2022
e053f45
adding new test cases for completed generics construct
kaarthikalagappan Mar 11, 2022
8b463a7
Fixing bug + cleaning imports
kaarthikalagappan Mar 12, 2022
ce32035
Cleaned generator class for parsers (parser declaration cannot have g…
kaarthikalagappan Mar 14, 2022
64719cc
Fixing previous logic error in parserTypeDeclarationGenerator dealing…
kaarthikalagappan Mar 14, 2022
ea72bd8
Fixing specializedType logic when it is called by instantiation
kaarthikalagappan Mar 14, 2022
7c935cf
support for generic package and control type declarations + test cases
kaarthikalagappan Mar 14, 2022
5b6953f
Adding generics support for externfunction, variable, parameter, and …
kaarthikalagappan Mar 18, 2022
3c9dccb
Adding generic support for headertypedecl + test cases
kaarthikalagappan Mar 18, 2022
746ad3d
changing print call algorithm to be consistent
kaarthikalagappan Mar 18, 2022
a35f6cc
Changing getName function to output both output type and construct to…
kaarthikalagappan Mar 21, 2022
44086e1
Updating test case with comments
kaarthikalagappan Mar 21, 2022
0fffa83
Mainly changing logic behind constructs that use functionPrototype in…
kaarthikalagappan Mar 21, 2022
07f5abd
updating test cases
kaarthikalagappan Mar 22, 2022
2599e3b
Fixing bug where functionPrototype wasn't tagged as generator
kaarthikalagappan Mar 22, 2022
0cc9c83
Adding expected outputs for regression testing + script
kaarthikalagappan Mar 22, 2022
19a8d6e
P4 Lexer Change! Adding support for multiline preprocessor strings
kaarthikalagappan Mar 28, 2022
1911927
Finishing up implementing support for generics - testing phase now
kaarthikalagappan Mar 28, 2022
80058e9
Changing printing algorithm to be more consistent & updating test cases
kaarthikalagappan Mar 28, 2022
72dba9c
Lexer change! Using a better method similar to C lexer to handle mult…
kaarthikalagappan Mar 31, 2022
0d95c9e
Cleaner implemented to resolve generics - refactored a lot
kaarthikalagappan Apr 4, 2022
14654ef
Changing handling error part to exit when all subparsers have an error
kaarthikalagappan Apr 4, 2022
a03657d
Adding new constructs to list of overridable ones
kaarthikalagappan Apr 4, 2022
9c306cd
Fixing bugs where temporaryValue was not added + mimicing expression …
kaarthikalagappan Apr 5, 2022
645d3ae
setting bool variables to turn on and off for printing values in cal…
kaarthikalagappan Apr 5, 2022
058580f
Adding backward support of @pragma production + logic change for scoping
kaarthikalagappan Apr 9, 2022
afb4a05
Wasn't properly parsing actionRef for calls, fixed it
kaarthikalagappan Apr 9, 2022
b48da58
counting for cases when specializedtype is invoked under invokingexpr…
kaarthikalagappan Apr 10, 2022
4a72ce7
redoing logic to ensure child functions do not have generators and if…
kaarthikalagappan Apr 10, 2022
d525005
redoing logic to ensure child functions do not have generators and if…
kaarthikalagappan Apr 10, 2022
e34c04e
Handling multiple function declarations + fixing bugs - need to updat…
kaarthikalagappan Apr 10, 2022
57a7b58
Changing assertions of value shadow-checking logic
kaarthikalagappan Apr 11, 2022
b1fddf4
Adding support to parse multiple final instantiations for macro colle…
kaarthikalagappan Apr 19, 2022
0247008
refactoring and fixing a couple of bugs
kaarthikalagappan May 3, 2022
1257189
fixing bug
kaarthikalagappan May 3, 2022
c9f8ab0
fixing another bug with adding default header functions
kaarthikalagappan May 3, 2022
0fde6f5
updating and adding new test cases
kaarthikalagappan May 3, 2022
48427e3
updating test cases and script to not include meta information
kaarthikalagappan May 3, 2022
fe0d38b
Updating GraphViz to work without requiring user to make changes
kaarthikalagappan May 3, 2022
0784563
Adding graphviz as a required tool for the project in README
kaarthikalagappan May 4, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ publications can be found.

Building SuperC requires `bison` and `sat4j`. For debian and ubuntu run

apt-get install bison libz3-java sat4j
apt-get install bison libz3-java sat4j graphviz

The following environment variables are expected by SuperC/xtc.

Expand Down
9 changes: 9 additions & 0 deletions fonda/p4_testsuite/callGraphTestCases/CGTest_action.p4
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
action Forward_a(out bit<9> outputPort, bit<9> port) {
outputPort = port;
}

control ActionInvoker() {
apply {
Forward_a(5, 10);
}
}
12 changes: 12 additions & 0 deletions fonda/p4_testsuite/callGraphTestCases/CGTest_action_nested.p4
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
action Forward_a(out bit<9> outputPort, bit<9> port) {
outputPort = port;
}

control ActionInvoker() {
action Forward_a(bit<9> port) {
port = 1;
}
apply {
Forward_a(5);
}
}
Loading