d0e95c7a1a
Class declarations support structured heap data that is a subtype of HeapObject. Only fields of Object subtypes (both strong and weak) are currently supported (no scalar fields yet). With this CL, both the field list macro used with the C++ DEFINE_FIELD_OFFSET_CONSTANTS macro (to make field offset constants) as well as the Torque "operator '.field'" macros are generated for the classes declared in Torque. This is a first step to removing the substantial amount of duplication and boilerplate code needed to declare heap object classes. As a proof of concept, and handful of class field definitions, including those for non trivial classes like JSFunction, have been moved to Torque. Bug: v8:7793 Change-Id: I2fa0b53db65fa6f5fe078fb94e1db3418f908753 Reviewed-on: https://chromium-review.googlesource.com/c/1373971 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#58704}
85 lines
3.1 KiB
VimL
85 lines
3.1 KiB
VimL
" Copyright 2018 the V8 project authors. All rights reserved.
|
|
" Use of this source code is governed by a BSD-style license that can be
|
|
" found in the LICENSE file.
|
|
|
|
if !exists("main_syntax")
|
|
" quit when a syntax file was already loaded
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
let main_syntax = 'torque'
|
|
elseif exists("b:current_syntax") && b:current_syntax == "torque"
|
|
finish
|
|
endif
|
|
|
|
let s:cpo_save = &cpo
|
|
set cpo&vim
|
|
|
|
syn match torqueLineComment "\/\/.*" contains=@Spell
|
|
syn region torqueComment start="/\*" end="\*/" contains=@Spell
|
|
syn region torqueStringS start=+'+ skip=+\\\\\|\\'+ end=+'\|$+
|
|
|
|
syn keyword torqueAssert assert check debug unreachable
|
|
syn keyword torqueAtom True False Undefined Hole Null
|
|
syn keyword torqueBoolean true false
|
|
syn keyword torqueBranch break continue goto
|
|
syn keyword torqueConditional if else typeswitch otherwise
|
|
syn match torqueConstant /\v<[A-Z][A-Z0-9_]+>/
|
|
syn match torqueConstant /\v<k[A-Z][A-Za-z0-9]*>/
|
|
syn keyword torqueFunction macro builtin runtime intrinsic
|
|
syn keyword torqueKeyword cast convert from_constexpr min max unsafe_cast
|
|
syn keyword torqueLabel case
|
|
syn keyword torqueMatching try label catch
|
|
syn keyword torqueModifier extern javascript constexpr transitioning transient weak
|
|
syn match torqueNumber /\v<[0-9]+(\.[0-9]*)?>/
|
|
syn match torqueNumber /\v<0x[0-9a-fA-F]+>/
|
|
syn keyword torqueOperator operator
|
|
syn keyword torqueRel extends generates labels
|
|
syn keyword torqueRepeat while for of
|
|
syn keyword torqueStatement return tail
|
|
syn keyword torqueStructure module struct type class
|
|
syn keyword torqueVariable const let
|
|
|
|
syn match torqueType /\v(\<)@<=([A-Za-z][0-9A-Za-z_]*)(>)@=/
|
|
syn match torqueType /\v(:\s*(constexpr\s*)?)@<=([A-Za-z][0-9A-Za-z_]*)/
|
|
" Include some common types also
|
|
syn keyword torqueType Arguments void never
|
|
syn keyword torqueType Tagged Smi HeapObject Object
|
|
syn keyword torqueType int32 uint32 int64 intptr uintptr float32 float64
|
|
syn keyword torqueType bool string
|
|
syn keyword torqueType int31 RawPtr AbstractCode Code JSReceiver Context String
|
|
syn keyword torqueType Oddball HeapNumber Number BigInt Numeric Boolean JSProxy
|
|
syn keyword torqueType JSObject JSArray JSFunction JSBoundFunction Callable Map
|
|
|
|
hi def link torqueAssert Statement
|
|
hi def link torqueAtom Constant
|
|
hi def link torqueBoolean Boolean
|
|
hi def link torqueBranch Conditional
|
|
hi def link torqueComment Comment
|
|
hi def link torqueConditional Conditional
|
|
hi def link torqueConstant Constant
|
|
hi def link torqueFunction Function
|
|
hi def link torqueKeyword Keyword
|
|
hi def link torqueLabel Label
|
|
hi def link torqueLineComment Comment
|
|
hi def link torqueMatching Exception
|
|
hi def link torqueModifier StorageClass
|
|
hi def link torqueNumber Number
|
|
hi def link torqueOperator Operator
|
|
hi def link torqueRel StorageClass
|
|
hi def link torqueRepeat Repeat
|
|
hi def link torqueStatement Statement
|
|
hi def link torqueStringS String
|
|
hi def link torqueStructure Structure
|
|
hi def link torqueType Type
|
|
hi def link torqueVariable Identifier
|
|
|
|
let b:current_syntax = "torque"
|
|
if main_syntax == 'torque'
|
|
unlet main_syntax
|
|
endif
|
|
let &cpo = s:cpo_save
|
|
unlet s:cpo_save
|
|
|
|
" vim: set ts=8:
|