* First draft of Ubuntu 20.04 Vagrantfile and scripts to install 2021-Mar version of open source P4 development tools. * Add more tracing output of what files have been installed at each step * Don't do behavioral-model install_deps.sh before installing PI This is an experiment to see if the end result will be able to run tutorials basic exercise using Python3 only on an Ubuntu 20.04 system. Just before this commit, `vagrant up` resulted in a system that failed to run the basic exercise, because python3 failed to import google.grpc (if I recall correctly -- it may have been a different google.<something> Python3 module name). * Add missing patch file * Fix copy and paste mistake * Add missing patch file * Change how protobuf Python3 module files are installed * Correct a few desktop icon file names, and add clean.sh script * Enhance clean.sh script, and add README for manual steps in creating a VM * Changes to try to always use Python3, never Python2, in tutorials * Update README steps for preparing a VM * More additions to README on steps to create a single file VM image * Add empty-disk-block zeroing to clean.sh script * Also install PTF * Update versions of P4 dev tool source code to 2021-Apr-05 This includes a change to p4lang/PI that allows P4Runtime API clients to send the shortest byte sequences necessary to encode integer values, which I want for a PTF test that I have recently created. * Update README for 2021-Apr-05 version of VM image * Resolve Python 3 compatibility issues Most of the Python 2 to 3 code translation changes were automated with the 2to3 tool. Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org> * Update commit SHAs for 4 p4lang repos to latest as of 2021-May-04 * Update Ubuntu 20.04 README.md for how I created 2021-May-04 version of VM * mycontroller: Use Python 3 shebang line Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org> * Update Ubuntu 20.04 README.md for how I created 2021-Jun-01 version of VM * Update commit SHAs for 4 p4lang repos to latest as of 2021-Jul-07 * Update Ubuntu 20.04 README.md for how I created 2021-Jul-07 version of VM * Update commit SHAs for 4 p4lang repos to latest as of 2021-Aug-01 * Update Ubuntu 20.04 README.md for how I created 2021-Aug-01 version of VM * Update commit SHAs for 4 p4lang repos to latest as of 2021-Sep-07 * Update Ubuntu 20.04 README.md for how I created 2021-Sep-07 version of VM Co-authored-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
134 lines
4.3 KiB
VimL
134 lines
4.3 KiB
VimL
" Vim syntax file
|
|
" Language: P4_16
|
|
" Maintainer: Antonin Bas, Barefoot Networks Inc
|
|
" Latest Revision: 5 August 2014
|
|
" Updated By: Gyanesh Patra, Unicamp University
|
|
" Latest Revision: 12 April 2016
|
|
" Updated Again By: Robert MacDavid, Princeton University
|
|
" Latest Revision: 12 June 2017
|
|
|
|
if version < 600
|
|
syntax clear
|
|
elseif exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
" Use case sensitive matching of keywords
|
|
syn case match
|
|
|
|
syn keyword p4ObjectKeyword action apply control default
|
|
syn keyword p4ObjectKeyword enum extern exit
|
|
syn keyword p4ObjectKeyword header header_union
|
|
syn keyword p4ObjectKeyword match_kind
|
|
syn keyword p4ObjectKeyword package parser
|
|
syn keyword p4ObjectKeyword state struct switch size
|
|
syn keyword p4ObjectKeyword table transition tuple typedef
|
|
syn keyword p4ObjectKeyword verify
|
|
|
|
" Tables
|
|
syn keyword p4ObjectAttributeKeyword key actions default_action entries
|
|
syn keyword p4ObjectAttributeKeyword implementation
|
|
" Counters and meters
|
|
syn keyword p4ObjectAttributeKeyword counters meters
|
|
" Var Attributes
|
|
syn keyword p4ObjectKeyword const in out inout
|
|
|
|
|
|
syn keyword p4Annotation @name @tableonly @defaultonly
|
|
syn keyword p4Annotation @globalname @atomic @hidden
|
|
|
|
|
|
syn keyword p4MatchTypeKeyword exact ternary lpm range
|
|
|
|
syn keyword p4TODO contained FIXME TODO
|
|
syn match p4Comment '\/\/.*' contains=p4TODO
|
|
syn region p4BlockComment start='\/\*' end='\*\/' contains=p4TODO keepend
|
|
|
|
syn match p4Preprocessor '#(include|define|undef|if|ifdef) .*$'
|
|
syn match p4Preprocessor '#(if|ifdef|ifndef|elif|else) .*$'
|
|
syn match p4Preprocessor '#(endif|defined|line|file) .*$'
|
|
syn match p4Preprocessor '#(error|warning) .*$'
|
|
|
|
syn keyword p4Type bit bool int varbit void error
|
|
|
|
" Integer Literals
|
|
|
|
syn match p4Int '[0-9][0-9_]*'
|
|
syn match p4Indentifier '[A-Za-z_][A-Za-z0-9_]*'
|
|
syn match p4HexadecimalInt '0[Xx][0-9a-fA-F]\+'
|
|
syn match p4DecimalInt '0[dD][0-9_]\+'
|
|
syn match p4OctalInt '0[oO][0-7_]\+'
|
|
syn match p4BinaryInt '0[bB][01_]\+'
|
|
|
|
|
|
syn region p4SizedType start='(bit|int|varbit)\<' end='\>'
|
|
syn match p4UserType '[A-Za-z_][A-Za-z0-9_]*[_][t]\W'
|
|
syn keyword p4Operators and or not &&& mask
|
|
|
|
|
|
" Header Methods
|
|
syn keyword p4Primitive isValid setValid setInvalid
|
|
" Table Methods
|
|
syn keyword p4Primitive hit action_run
|
|
" Packet_in methods
|
|
syn keyword p4Primitive extract lookahead advance length
|
|
" Packet_out methods
|
|
syn keyword p4Primitive emit
|
|
" Known parser states
|
|
syn keyword p4Primitive accept reject
|
|
" Misc
|
|
syn keyword p4Primitive NoAction
|
|
|
|
|
|
syn keyword p4Conditional if else select
|
|
syn keyword p4Statement return
|
|
|
|
" Don't Care
|
|
syn keyword p4Constant _
|
|
" Error
|
|
syn keyword p4Constant NoError PacketTooShort NoMatch StackOutOfBounds
|
|
syn keyword p4Constant OverwritingHeader HeaderTooShort ParserTiimeout
|
|
" Boolean
|
|
syn keyword p4Boolean false true
|
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
" Apply highlight groups to syntax groups defined above
|
|
" For version 5.7 and earlier: only when not done already
|
|
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
|
if version >= 508 || !exists("did_p4_syntax_inits")
|
|
if version <= 508
|
|
let did_p4_syntax_inits = 1
|
|
command -nargs=+ HiLink hi link <args>
|
|
else
|
|
command -nargs=+ HiLink hi def link <args>
|
|
endif
|
|
|
|
HiLink p4ObjectKeyword Repeat
|
|
HiLink p4UserType Type
|
|
HiLink p4ObjectAttributeKeyword Keyword
|
|
HiLink p4TypeAttribute StorageClass
|
|
HiLink p4Annotation Special
|
|
HiLink p4MatchTypeKeyword Keyword
|
|
HiLink p4TODO Todo
|
|
HiLink p4Comment Comment
|
|
HiLink p4BlockComment Comment
|
|
HiLink p4Preprocessor PreProc
|
|
HiLink p4SizedType Type
|
|
HiLink p4Type Type
|
|
HiLink p4DecimalInt Number
|
|
HiLink p4HexadecimalInt Number
|
|
HiLink p4OctalInt Number
|
|
HiLink p4BinaryInt Number
|
|
HiLink p4Int Number
|
|
HiLink p4Operators Operator
|
|
HiLink p4Primitive Function
|
|
HiLink p4Conditional Conditional
|
|
HiLink p4Statement Statement
|
|
HiLink p4Constant Constant
|
|
HiLink p4Boolean Boolean
|
|
|
|
delcommand HiLink
|
|
endif
|
|
|
|
let b:current_syntax = "p4"
|